首页 文章

从两个Firebase项目接收一个Android应用程序的推送通知

提问于
浏览
10

我有一个Android应用,我希望它能够从两个不同的Firebase项目接收推送通知 .

我读了一篇关于"Accessing the Databases from two different Firebase projects"的博客"Working with multiple Firebase projects in an Android app" https://firebase.googleblog.com/2016/12/working-with-multiple-firebase-projects-in-an-android-app.html .
但是,没有关于从多个Firebase项目接收通知的信息 .

那么,如何将我的应用程序与多个Firebase项目集成并从中接收推送通知?

1 回答

  • 5

    关于这个主题的documentation实际上有一部分:

    从多个发件人接收消息FCM允许多方向同一客户端应用程序发送消息 . 例如,假设客户端应用程序是具有多个贡献者的文章聚合器,并且每个人都应该能够在发布新文章时发送消息 . 此消息可能包含URL,以便客户端应用程序可以下载该文章 . FCM不必将所有发送活动集中在一个位置,而是让您能够让每个贡献者发送自己的消息 . 为此,请确保每个发件人都生成自己的发件人ID . 有关如何获取FCM发件人ID的信息,请参见所用平台的客户端文档 . 请求注册时,客户端应用程序会多次提取令牌,每次在受众群体字段中使用不同的发件人ID . 最后,与相应的应用服务器共享注册令牌(以完成FCM注册客户端/服务器握手),他们将能够使用自己的身份验证密钥向客户端应用程序发送消息 . 请注意,限制为100个多个发件人 .

    我认为这里令人困惑但重要的部分是:

    请求注册时,客户端应用程序会多次提取令牌,每次在受众群体字段中使用不同的发件人ID .

    换句话说,您必须调用getToken()传递发件人ID并简单地将 "FCM" (例如 getToken("2xxxxx3344", "FCM") )作为参数 . 您必须确保为所需的 each sender(项目)调用此方法 .

    另外,请注意 getToken() 文档:

    这是一个阻塞函数,所以不要在主线程上调用它 .

    一些额外的好消息:

    • 如果它像默认值一样失败,它不会自动重试 .

    • 失败时返回IOException .

相关问题