我们正在将 Firebase 消息传递集成到 Android 应用程序中以用于推送通知。我们将使用服务器端的 SNS 向 Firebase 发送推送消息。以下是我们的用例:
- 我们有三台服务器:QA、STG 和 PRODUCTION
- 我们在 firebase 控制台中创建了三个项目:appQA、appSTG 和 appProd
- 但我们只想生成 1 个 APK,它可以根据用户登录的服务器从上述三个 Fire Base 项目中的任何一个接收 Firebase 推送通知。
- 我们在 firebase 中配置了每个项目,最后每个项目有 1 个 google-services.json 文件(总共 3 个)
- 现在我们如何配置或生成 1 个 APK,它可以包含所有三个 json 文件并在它们之间切换runtime并不是构建时因为我们不想为不同的环境构建单独的 APK。我们严格要求生成一个可用于连接到我们所有环境并接收来自所有环境的推送通知的单个 APK。
- 我们尝试过口味和构建类型,但两者都构建时并不是run-time
这是我们第一次涉足 Android 上的推送通知世界。
PS:最明显的解决方案是在 firebase 中只有一个项目并在客户端上配置它,我们所有的服务器都可以使用同一个项目,但理想情况下我们希望生产与 QA/STG 分别使用单独的项目
If you really如果需要一个能够以某种方式自行选择它所针对的 Firebase 项目的 APK,则无法使用 Gradle 插件提供的自动 init。
通常情况下,Firebase 应用程序自动初始化 https://firebase.googleblog.com/2016/08/organizing-your-firebase-enabled-android-app-builds.html(一定要阅读我的博客文章)通过 gradle 插件注入的数据。该系统适用于绝大多数情况,但不适用于您的情况。
如果正常情况不适合您,您必须通过 Android 构建工具禁用 FirebaseInitProvider(请参阅工具:节点=“删除” https://developer.android.com/studio/build/manifest-merge.html),然后自己初始化您的应用程序FirebaseApp.initializeApp() https://firebase.google.com/docs/reference/android/com/google/firebase/FirebaseApp使用您构建的 FirebaseOptions。您需要安排在调用任何 API 之前进行 init,否则会出现错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)