Bravo Bravo - 2 months ago 25
Android Question

How to launch FCM ID Service only after a particular activity is triggered?

Assume I have a

LoginActivity
where user can either register or login with existing credentials. I don't want
FirebaseInstanceIdService
to generate a token, unless user is logged in and
MainActivity
of the application is launched.

Thank you

Answer

You cannot block FirebaseInstanceIdService.onTokenRefresh() from being called until the user is logged in.

What you could do in your use case is:

  • In FirebaseInstanceIdService.onTokenRefresh() ignore the event if the user is not logged-in
  • When the user log-in check FirebaseInstanceId.getToken() and if != null call onTokenRefresh() (or directly your logic) manually.

In this way you can process the token when the user is logged-in, and if the token is not available (or is rotated) you will receive the onTokenRefresh() event later.

Comments