gpt4 book ai didi

android - 调用 FirebaseInstanceId.getToken 的行为

转载 作者:太空宇宙 更新时间:2023-11-03 13:08:08 24 4
gpt4 key购买 nike

关于 FirebaseInstanceId.getToken(String authorizedEntity, String scope) 我有两种类型的问题,一种是关于多次调用此方法,另一种是关于调用此方法是否触发 FirebaseMessagingService.onNewToken(字符串标记)

1) 多次调用:根据这个documentation可以多次调用 getToken(String authorizedEntity, String scope),每次使用不同的发件人 ID,以便能够接收来自多个发件人的消息。我的问题是,每个调用会返回不同的 token ,还是每个调用都会返回相同的 token 但现在 token 也适用于多个发件人?如果我们使用之前使用过的发件人 ID 调用此方法,它会返回现有 token 还是生成新 token ?

所以,假设我有这个操作顺序

  1. 调用getToken("senderId1", "FCM")获取 token A
  2. 调用 getToken("senderId2", "FCM")。我会得到 A 还是不同的 token B
  3. 调用 getToken("senderId2", "FCM")。我会得到 AB 还是另一个不同的 C

2) onNewToken 会被调用吗?这documentation声明如果 token 更改,将调用该方法。那么这是否意味着如果 getToken 返回一个与之前不同的 token ,那么 onNewToken 也会被调用?如果我们要多次调用 getToken 以允许从不同的发件人接收,并且每次调用返回不同的 token ,那么 onNewToken 将继续被调用。

由于建议我们在触发 onNewToken 时更新服务器,我想了解预期的行为并避免在每次调用 onNewToken 时通常更新服务器。

最佳答案

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?

getToken()/getToken(String, String) 将返回相同的 token ,直到相应 token 过期为止。请注意,出于同样的原因,我指的是他们为每个发件人返回的相同标记。即:

  • getToken() 返回默认项目的注册 token (例如 tokenDefaultSenderId)
  • getToken(String, String) 返回与其关联的发件人的注册 token (例如 tokenSenderId2)

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?

  1. 好的。
  2. 您将获得代币B
  3. 您将再次获得代币B

token 与其关联的发件人相关联。

Will onNewToken be called? ... So does this mean that if getToken returns a different token than before then onNewToken will be invoked as well?

onNewToken() 只会返回默认发送者的 token (强调我的):

Called when a new token for the default Firebase project is generated.

关于 onNewToken() 的事情是它只在前一个 token 过期时触发——要问的是,如果默认发送者的 token 过期,其他发送者还有什么?因此,这里最好的解决方法是为您拥有的每个发件人调用 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
}

关于android - 调用 FirebaseInstanceId.getToken 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52655938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com