繁体   English   中英

在同一个 Android 应用程序中使用多个 Firebase 项目的 Firebase 云消息传递的当前最佳实践是什么?

[英]What is the current best practice for using Firebase Cloud Messaging with multiple Firebase projects in the same Android app?

我正在开发一个 Android SDK,它使用 Firebase Cloud Messaging 从我的后端接收推送通知。 无论主机应用程序是否也在使用 Firebase,SDK 应该都能正常工作。 FCM 文档概述了一种允许多个发件人向同一个应用程序发送推送通知的方法,但措辞含糊不清,似乎没有任何代码示例说明如何执行此操作。

在四处挖掘之后,看起来曾经(大约 2018 年)通过调用FirebaseInstanceId.getInstance().getToken("senderId1,senderId2", FirebaseMessaging.INSTANCE_ID_SCOPE)来完成此任务,现在已弃用。

FirebaseMessaging class 的源代码中,有一个包私有初始化程序接受FirebaseApp object。 这看起来应该是为辅助 Firebase 应用程序生成 FCM 注册令牌的正确方法,实际上,如果我使用反射来访问此初始化程序方法并使用FirebaseMessaging.getInstance(**secondaryApp**).getToken().addOnCompleteListener(...)我能够成功发送推送通知,但是由于显而易见的原因,这是一个低于标准的解决方案。

在同一个应用程序中将 FCM 与多个 Firebase 项目一起使用的当前推荐方法是什么?

FirebaseMessaging 没有公开getInstance(app)的公共方法这一事实表明,FCM 不支持使用多个项目进行初始化。 您会注意到FirebaseAnalyticsFirebaseCrashlyticsFirebaseInAppMessaging也是如此。 这些产品都依赖于 Android singleton 服务,这些服务必须在应用清单中注册,在发布前无法更改。 这就是为什么它们只支持单个(默认) FirebaseApp实例。

您可以初始化任意数量的 FirebaseApp 实例,为您要使用的每个项目创建一个实例,但这些特定产品只能与默认应用一起使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM