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

时间:2017-02-08 15:46:29

标签: android firebase push-notification firebase-cloud-messaging

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

我阅读了博客“在Android应用中使用多个Firebase项目”https://firebase.googleblog.com/2016/12/working-with-multiple-firebase-projects-in-an-android-app.html,其中讨论了“从两个不同的Firebase项目访问数据库”。 但是,没有关于从多个Firebase项目接收通知的信息。

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

2 个答案:

答案 0 :(得分:6)

documentation中有关于此主题的部分内容:

  

接收来自多个发件人的邮件

     

FCM允许多方向同一客户端应用发送消息。例如,假设客户端应用程序是具有多个贡献者的文章聚合器,并且每个人都应该能够在发布新文章时发送消息。此消息可能包含URL,以便客户端应用程序可以下载该文章。 FCM不必将所有发送活动集中在一个位置,而是让您能够让每个贡献者发送自己的消息。

     

为了实现这一点,请确保每个发件人都生成自己的sender ID。有关如何获取FCM发件人ID的信息,请参见所用平台的客户端文档。请求注册时,客户端应用程序会多次提取令牌,每次在受众群体字段中使用不同的发件人ID。

     

最后,与相应的应用服务器共享注册令牌(以完成FCM注册客户端/服务器握手),他们将能够使用自己的身份验证密钥向客户端应用程序发送消息。

     

请注意,限制为100个多个发件人。

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

  

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

换句话说,您必须致电getToken()传递发件人ID,只需"FCM"(例如getToken("2xxxxx3344", "FCM"))作为参数即可。您必须确保为所需的每个发件人(项目)拨打此电话。

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

  

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

一些额外的好消息:

  • 如果失败,则不会自动重试。
  • 失败时返回IOException。

答案 1 :(得分:2)

我在实施已接受的答案时遇到了一些问题,因此当我找到一个可靠的解决方案时,我继续尝试自己做。我已经详细分享了解决方案 here