gpt4 book ai didi

android - 不使用默认 FirebaseApp 的 FirebaseInstanceId.getInstance().getToken()

转载 作者:行者123 更新时间:2023-11-29 19:35:43 28 4
gpt4 key购买 nike

我正在尝试使用 FCM 发送 Firebase 通知,但我有一个使用一个 Firebase 项目的应用程序和一个使用另一个 Firebase 项目的库。我想从库 Firebase 项目接收 token 以接收 Firebase 通知。

当我尝试使用以下方式直接接收 token 时:

FirebaseInstanceId.getInstance().getToken();

我收到了一个有效 token ,但来自 Application Firebase Project。如果我尝试在 getInstance() 库 Firebase 项目中强制执行,使用:

FirebaseInstanceId.getInstance(FirebaseApp.getInstance("ABC")).getToken();

我收到 null。如果我尝试使用 Application 或 Library Firebase Project 在 getToken() 中传递参数,如下所示:

FirebaseInstanceId.getInstance().getToken(getApplication().getResources().getString(R.string.gcm_defaultSenderId), FirebaseMessaging.INSTANCE_ID_SCOPE);

FirebaseInstanceId.getInstance(FirebaseApp.getInstance("ABC")).getToken(getApplication().getResources().getString(R.string.gcm_defaultSenderId), FirebaseMessaging.INSTANCE_ID_SCOPE);

我从应用程序 Firebase 项目收到了相同的有效 token 。

the R.string.gcm_defaultSenderId is from library project resources

还有另一种方法可以接收 Library Firebase 项目 token ,或者我做错了什么?

最佳答案

这是我根据我的实验和文档对您观察到的内容的理解。

当您第一次调用 getToken() 使用 FirebaseApp 而不是默认值时,没有 token ,需要与服务器通信才能生成 token 。返回空值并启动获取 token 的过程。 documentation for getToken()说它返回 “主 token 或如果 token 尚不可用则返回 null”。几秒钟后收到 token 。您可以使用 FirebaseInstanceIdServiceonTokenRefresh() 方法检测该事件,如果你已经实现了。在随后为非默认应用调用 getToken() 时, token 将出现并由 getToken() 立即返回。

我认为获取作用域 token 的调用总是返回一个 token ,因为它们是阻塞的(see docs),并等待与服务器的交互完成后再返回结果。

关于android - 不使用默认 FirebaseApp 的 FirebaseInstanceId.getInstance().getToken(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39215267/

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