我正在开发一个android sdk,它使用firebase云消息从我的后端接收推送通知。无论主机应用程序是否也在使用firebase,sdk都应该正常工作。fcm文档概述了一种允许多个发送者向同一个应用程序发送推送通知的方法,但是措辞含糊不清,而且似乎没有任何代码示例说明如何做到这一点。
在四处挖掘之后,似乎过去(大约2018年)有一种方法可以通过打电话来实现这一点 FirebaseInstanceId.getInstance() .getToken("senderId1,senderId2", FirebaseMessaging.INSTANCE_ID_SCOPE)
,现在已弃用。
在源代码中 FirebaseMessaging
类中,有一个包私有初始值设定项 FirebaseApp
对象。这看起来应该是为辅助firebase应用程序生成fcm注册令牌的正确方法,实际上,如果我使用反射来访问这个初始化方法并使用 FirebaseMessaging.getInstance(**secondaryApp**).getToken().addOnCompleteListener(...)
我能够成功地发送推送通知,但是由于明显的原因,这是一个不理想的解决方案。
对于在同一个应用程序中对多个firebase项目使用fcm,当前推荐的方法是什么?
1条答案
按热度按时间0lvr5msh1#
firebasemessaging不公开
getInstance(app)
建议fcm不支持使用多个项目进行初始化。您会注意到,firebaseanalytics、firebasecrashlytics和firebaseinappmessaging也是如此。这些产品都依赖于android单例服务,这些服务必须在应用程序清单中注册,在发布前不能更改。这就是为什么它们只支持单个(默认)firebaseapp示例。您可以初始化任意多个firebaseapp示例,每个项目一个示例,但这些特定产品只能与默认应用程序一起使用。