是否可以在单个项目/应用程序中为发布和调试模式创建不同的Firebase数据库?

时间:2016-09-28 10:58:20

标签: android firebase firebase-realtime-database

我们正在处理使用Firebase实时数据库的项目。是否可以在单个Android应用中为发布调试模式制作不同的Firebase数据库?

项目:(具有发布/调试模式的应用程序)

  1. 调试模式(测试环境) - Firebase数据库1
  2. 发布模式(生产环境) - Firebase数据库2
  3. 为Firebase数据库解决此测试/生产环境的最佳方法是什么?

3 个答案:

答案 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();
}