作者:陆寥频 | 来源:互联网 | 2023-02-10 13:50
我们正在我们的Android应用程序中集成firebase消息,用于推送通知.我们将从服务器端使用SNS向firebase发送推送消息.以下是我们的用例:
我们有三台服务器:QA,STG和PRODUCTION
我们在firebase控制台中创建了三个项目:比如appQA,appSTG和appProd
但是我们只想生成1个单独的APK,它可以从上述三个基础项目中的任何一个接收firebase推送通知,具体取决于我们用户登录的服务器.
我们在firebase中配置了每个项目,最后我们为每个项目获得了1个google-services.json文件(共3个)
现在我们如何配置或生成1个APK,它可以包含所有三个json文件,并在它们之间切换运行时而不是构建时间,因为我们不想为不同的环境构建单独的APK.我们严格要求生成一个可用于连接到我们所有环境并从所有环境接收推送通知的单个APK.
我们尝试过类型和构建类型,但它们都是构建时而不是运行时
这是我们第一次在Android上推送推送通知的世界.
PS:显而易见的解决方案是在firebase中只有一个项目并在客户端配置它,我们所有的服务器都可以使用相同的项目,但理想情况下我们需要生产与QA/STG的单独项目
1> Doug Stevens..:
如果你真的需要一个单独的APK以某种方式自行选择它所使用的Firebase项目,你就不能使用Gradle插件提供的自动初始化.
通常,Firebase应用程序会通过gradle插件注入的数据自动初始化(肯定会在那里阅读我的博客文章).该系统适用于绝大多数情况,但不适用于您的情况.
如果正常情况下不适合你,你就必须禁用FirebaseInitProvider使用Android构建工具(见工具:节点="删除"),并初始化你的应用程序自己与FirebaseApp.initializeApp()与FirebaseOptions你构造.您需要在调用任何API之前安排init,否则会出错.
删除插件,google-services.json文件和FirebaseInitProvider(通过tools:node ="remove")绝对都是一起包装.如果您自己成功初始化,您的项目应该很好!
我仍然收到“缺少google_app_id。已禁用Firebase Analytics”消息。我还能尝试什么?