我们正在处理使用Firebase实时数据库的项目。是否可以在单个Android应用中为发布和调试模式制作不同的Firebase数据库?
项目:(具有发布/调试模式的应用程序)
为Firebase数据库解决此测试/生产环境的最佳方法是什么?
答案 0 :(得分:3)
目前项目中只有一个数据库。因此,要么您需要对调试进行建模并将数据发布到同一个数据库中,要么每个项目都需要一个单独的项目。
此博客文章中介绍了其中许多方案:Organizing your Firebase-enabled Android app builds。
答案 1 :(得分:1)
不是使用google-services.json
来推动Firebase的初始化(假设您正在做什么?),我建议使用类似的方式动态创建FirebaseApp
以下
String apiKey;
String databaseUrl;
if (useDebugDatabase) {
apiKey = "xxxxxx";
databaseUrl = "<debug firebase database url>";
} else {
apiKey = "xxxxxx"
databaseUrl = "<release firebase database url>";
}
FirebaseOptions firebaseOptions = new FirebaseOptions.Builder()
.setApiKey(apiKey)
.setApplicationId(context.getString(R.string.google_app_id))
.setDatabaseUrl(databaseUrl)
.build();
FirebaseApp firebaseApp = FirebaseApp.initializeApp(context, firebaseOptions, "MyApp");
FirebaseDatabase database = FirebaseDatabase.getInstance(firebaseApp);
答案 2 :(得分:0)
您可以在同一项目下创建单独的数据库,并将其用于调试和发布版本。
在代码中,只需根据它的构建指向不同数据库的get实例。
FirebaseDatabase firebaseDatabase;
if (BuildConfig.DEBUG) {
//Url of new database
firebaseDatabase = FirebaseDatabase.getInstance("https://app-1234.firebaseio.com/");
} else {
//For release builds use the default database
firebaseDatabase = FirebaseDatabase.getInstance();
}