gpt4 book ai didi

android - 如何在 FirebaseInstanceIdService 之外访问 Firebase token ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:35:30 25 4
gpt4 key购买 nike

我正在从 GCM 升级到 FCM。在 onTokenRefresh 之外获取 Firebase 设备 token 的正确方法是什么?

我正在尝试获取设备 token ,以便稍后可以在我的服务器上重新启用它。我最初按照显示的文档获取设备 token here对于方法 1。但是,当我尝试通过方法 2 直接访问设备 token 时,我得到了一个不同的 token 。我是否在方法 2 中错误地检索了设备 token ?

方法一:FirebaseInstanceIdService.onTokenRefresh() 内部

String refreshedToken = FirebaseInstanceId.getInstance().getToken();

方法二:直接获取设备 token

FirebaseInstanceId instanceID = FirebaseInstanceId.getInstance();
String registrationToken = instanceID.getToken(this.projectNumber, "FCM");

最佳答案

只是为了解释方法 1 中发生了什么。建议获取onTokenRefresh()里面的token因为当此方法被触发时,这意味着 previous token 已失效。来自文档:

Called when the system determines that the tokens need to be refreshed. The application should call getToken() and send the tokens to all application servers.

对于方法 #2,您正在调用 getToken(String authorizedEntity, String scope) , 而不是 getToken() . setting up your app to receive messages from multiple senders时常用带两个参数的那个.

每次使用不同的项目 ID (authorizedEntity) 调用 getToken(String authorizedEntity, String scope) 时,都会返回不同的 token 。

只需用方法 1 中的相同调用替换您的方法 2,如下所示:

String registrationToken = FirebaseInstanceId.getInstance().getToken();

您应该能够检索到指定的 token 。 token 通常在初始 Activity 的 onCreate() 中检索。

关于android - 如何在 FirebaseInstanceIdService 之外访问 Firebase token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42684383/

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