繁体   English   中英

Firebase SDK在一个apk中有多个项目

[英]Firebase SDK multiple projects in one apk

我正在尝试初始化FirebaseApp,只能使用FirebaseOptions构建器,就像这样(我只使用applicationId和ApiKey,因为我只想启动分析):

FirebaseOptions options = new FirebaseOptions.Builder()
.setApplicationId(applicationID) // Required for Analytics.
.setApiKey(apiKey) // Required for Auth.
.build();
FirebaseApp.initializeApp(context, options);

我的项目中没有google-services.json文件,我在AndroidManifest.xml中删除了FirebaseInitProvider,就像这样:

<provider android:name="com.google.firebase.provider.FirebaseInitProvider"
   android:authorities="${applicationId}.firebaseinitprovider"
   android:exported="false"
   tools:node="remove"/>

我想从我的服务器发送应用程序ID,因为我想要多个项目,而且我真的不在乎是否在应用程序初始化期间丢失了一些事件。 在启动应用程序时,尝试在Android Studio调试日志中查看事件时,如下所示:

adb shell setprop log.tag.FA VERBOSE

adb shell setprop log.tag.FA-SVC VERBOSE

adb logcat -v time -s FA FA-SVC

我明白了: Missing google_app_id. Firebase Analytics disabled. Missing google_app_id. Firebase Analytics disabled.

我不想在strings.xml静态文件中使用google_app_id,因为我想要多个项目。 但是,我尝试在XML文件中包含所有应用ID,并尝试在FirebaseApp.initializeApp之前使用反射更改它们,但这似乎不起作用。

默认的 FirebaseApp初始化看起来很相似(这在没有传递名称时使用):

FirebaseApp fb = FirebaseApp.initializeApp(context, options, "[DEFAULT]");

默认应用程序实例使用的FirebaseOptions从字符串资源中读取

但是...可以改为分配自定义名称,以便从字符串资源中读取:

FirebaseApp fb01 = FirebaseApp.initializeApp(context, options, "primary");
FirebaseDatabase db01 = FirebaseDatabase.getInstance(fb01);

FirebaseApp fb02 = FirebaseApp.initializeApp(context, options, "secondary");
FirebaseDatabase db02 = FirebaseDatabase.getInstance(fb02);

找到了这个Firebase博客 ,这是可靠的来源。

FirebaseApp的文档也解释了它。

暂无
暂无

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

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