【发布时间】:2016-12-22 01:38:55
【问题描述】:
编辑:我应该强调,我不想使用任何这些 Google 服务,并尝试在这种情况下应用 google-services 插件,而没有适用的 google-services。 json,会导致构建失败。
我希望能够初始化 Firebase SDK,特别是使用远程配置,而不使用 google-services.json。
我看到 FirebaseApp 有一个初始化方法,它接收一个 FirebaseOptions 对象。
我使用 google-services.json 中提供的值构建了 FirebaseOptions,在使用这些选项调用 FirebaseApp.initialize 后,我总是得到 p>
FirebaseInitProvider: FirebaseApp initialization unsuccessful
我知道这是使用 google-services.json 文件的推荐方式,但我需要能够使应用调用不同的 Firebase 项目,具体取决于调试/发布版本,同时保持包名称相同。
我想这样做的方法是为初始化 Firebase 所需的所有值设置一个调试/发布对,然后动态地进行初始化。
FirebaseOptions options = new FirebaseOptions.Builder()
.setApplicationId(appId)
.setApiKey(apiKey)
.setGcmSenderId(appContext.getString(
isDebug ? R.string.firebase_testing_gcm_sender_id :
R.string.firebase_production_gcm_sender_id))
.setDatabaseUrl(appContext.getString(
isDebug ? R.string.firebase_testing_database_url :
R.string.firebase_production_database_url))
.setStorageBucket(
appContext.getString(
isDebug ? R.string.firebase_testing_storage_bucket :
R.string.firebase_production_storage_bucket))
.build();
FirebaseApp.initializeApp(appContext, options);
到目前为止,它似乎不起作用。
非常感谢所有帮助!
【问题讨论】:
-
不是您问题的答案,但可能会有所帮助:Google Services Gradle Plugin 的文档说明您可以为一个项目拥有多个
google-services.json文件以支持不同的构建类型和风格。 -
@qbix,谢谢,我已经更新了我的问题。我知道这一点,但问题是我不想使用任何这些 Google 服务,因为我不需要它们。如果我仍然不提供 google-services.json,构建将失败。
-
这对我有用:stackoverflow.com/questions/37634767/…。什么不适合你?
-
@FrankvanPuffelen,这正是我正在做的事情,我收到了“初始化不成功”的消息。
-
@FrankvanPuffelen 可能是,为了成功手动初始化 FirebaseApp 实例,我必须给它一个非默认名称,但问题是 FirebaseRemoteConfig,没有参数化的 getInstance我可以传递这样一个非默认 FireabaseApp 实例的方法,因此在调用 FirebaseRemoteConfig.getInstance 时,应用程序崩溃了。
标签: android firebase firebase-remote-config