Tieni presente che puoi sempre recuperare il token con:
FirebaseInstanceID.getInstance().getToken();
Questo restituirà null
se il token non è stato ancora generato o il token se è stato generato. Nel tuo caso è molto probabile che il token venga generato nel momento in cui l'utente ha effettuato l'accesso. Quindi dovresti essere in grado di inviarlo al server dell'app non appena l'utente ha effettuato l'accesso. Se non è disponibile, allora tu lo invierebbe nella richiamata onTokenRefresh come menzionato da Chintan Soni.
Modifica
Utilizzando il nuovo Firebase SDK (21.0.0), otterrai il tuo token in questo modo:
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();
}
});
È meglio aggiungere un listener per una maggiore gestione della risposta.