![](/img/trans.png)
[英]Switching between different firebase projects (runtime) in one single APK file
[英]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.