hca*_*ams 5 android firebase firebase-cloud-messaging
我有两种类型的问题FirebaseInstanceId.getToken(String authorizedEntity, String scope)
,一种是多次调用此方法,另一种是调用此方法是否触发FirebaseMessagingService.onNewToken(String token)
。
1) 多次调用:根据本文档,一个人会调用getToken(String authorizedEntity, String scope)
多次,每次使用不同的发件人 ID,以便能够接收来自多个发件人的消息。我的问题是,每个调用都会返回不同的令牌,还是每个调用都会返回相同的令牌,但现在该令牌也适用于多个发件人?如果我们使用之前使用过的发送者 ID 调用此方法,那么会返回现有令牌还是生成新令牌?
所以,假设我有这个操作顺序
getToken("senderId1", "FCM")
并获取tokenA
getToken("senderId2", "FCM")
。我会得到A
不同的代币吗B
?getToken("senderId2", "FCM")
。我会得到A
,,B
还是另一个不同的C
?2)会onNewToken
被召唤吗?本文档指出,如果令牌发生更改,将调用该方法。那么这是否意味着 ifgetToken
返回一个与之前不同的令牌 thenonNewToken
也会被调用?如果我们要getToken
多次调用以允许从不同的发送者接收,并且每次调用返回不同的令牌,那么onNewToken
将继续被调用。
由于建议我们在onNewToken
触发时更新服务器,因此我想了解预期的行为并避免在每次调用时更新服务器onNewToken
。
我的问题是,每个调用都会返回不同的令牌,还是每个调用都会返回相同的令牌,但现在该令牌也适用于多个发件人?
getToken()
/getToken(String, String)
将返回相同的令牌,直到相应的令牌过期。请注意,出于同样的原因,我的意思是它们为每个发件人返回的相同标记。IE:
getToken()
返回默认项目的注册令牌(例如 tokenDefaultSenderId)getToken(String, String)
返回与其关联的发件人的注册令牌(例如 tokenSenderId2)如果我们使用之前使用过的发送者 ID 调用此方法,那么会返回现有令牌还是生成新令牌?
B
。B
。令牌与其关联的发送者绑定在一起。
onNewToken 会被调用吗?...那么这是否意味着如果 getToken 返回与之前不同的令牌,那么 onNewToken 也会被调用?
onNewToken()
只会返回默认发件人的令牌(强调我的):
在生成默认 Firebase 项目的新令牌时调用。
问题在于onNewToken()
,它仅在前一个令牌过期时才会触发 - 需要问的是,如果默认发件人的令牌过期了,其他发件人还需要做什么?因此,最好的解决方法是调用getToken()
您拥有的每个发件人,如下所示:
public void onNewToken(String token){
String default = token;
String sender2 = getToken("senderId2", "FCM");
// and so on for each of your sender, then save the tokens as needed
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2049 次 |
最近记录: |