I have two types of questions around FirebaseInstanceId.getToken(String authorizedEntity, String scope)
, one around calling this method multiple times and one around whether calling this method triggers FirebaseMessagingService.onNewToken(String token)
.
1) Calling multiple times:
According to this documentation one would call getToken(String authorizedEntity, String scope)
multiple times, each time with a different sender id, in order to be able to receive messages from multiple senders. My question is, will each call return a different token, or will each call return the same token but now the token will work also for multiple senders? If we call this method with a sender id that we've previously used before, will that return the existing token or generate a new one?
So, say I have this order of operation
- Call
getToken("senderId1", "FCM")
and get tokenA
- Call
getToken("senderId2", "FCM")
. Will I getA
or a different tokenB
? - Call
getToken("senderId2", "FCM")
. Will I getA
,B
, or yet another different oneC
?
2) Will onNewToken
be called?
This documentation states that the method will be invoked if the token changes. So does this mean that if getToken
returns a different token than before then onNewToken
will be invoked as well? If we're going to be calling getToken
multiple times to allow for receiving from different senders, and each call returns a different token, then onNewToken
will keep getting invoked.
Since it is advised that we update our server when onNewToken
is triggered, I want to understand the expected behavior and avoid generally updating the server on each invocation of onNewToken
.