Observe que você sempre pode recuperar o token com:
FirebaseInstanceID.getInstance().getToken();
Isso retornará
null
se o token ainda não foi gerado ou o token se já foi gerado. No seu caso, é muito provável que o token seja gerado no momento em que o usuário fizer login. Portanto, você poderá enviá-lo para o servidor de aplicativos assim que o usuário fizer login. Se não estiver disponível, você enviaria no retorno de chamada onTokenRefresh como Chintan Soni mencionou. Editar
Usando o novo SDK do Firebase (21.0.0), você receberá seu token desta forma:
FirebaseInstallations.getInstance().getToken(false).addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() {
@Override
public void onComplete(@NonNull Task<InstallationTokenResult> task) {
if(!task.isSuccessful()){
return;
}
// Get new Instance ID token
String token = task.getResult().getToken();
}
});
É melhor adicionar um ouvinte para mais manipulação na resposta.