Google 没有 google-services.json 文件登录

Google Login without google-services.json file

我一直在寻找一种在运行时添加 google-services.json 的方法,因为我们使用相同的基本代码为不同的客户端配置应用程序,因此我们想添加google-services.json 在运行时。

我尝试了几个链接,但找不到这样的方法。

非常感谢任何帮助。

google-services.json 实际上在运行时从未被读取。在您的 Android 应用程序的构建过程中,来自 google-services.json 的相关信息被翻译成您应用程序的 XML 资源,并且 that 是它被读取的地方当应用程序启动时。由于构建插件放置值的目的地是hard-wired,您不能将其配置为具有多组配置数据。

与其尝试在运行时读取 google-services.json,我建议在您的代码中显式配置 FirebaseApp 实例,如下所示:

// Manually configure Firebase Options
FirebaseOptions options = new FirebaseOptions.Builder()
        .setApplicationId("1:27992087142:android:ce3b6448250083d1") // Required for Analytics.
        .setApiKey("AIzaSyADUe90ULnQDuGShD9W23RDP0xmeDc6Mvw") // Required for Auth.
        .setDatabaseUrl("https://myproject.firebaseio.com") // Required for RTDB.
        .build();

现在您可以自行决定将来自 google-services.json 的相关信息保存在何处,以及在应用程序启动时使用哪些信息。

然后:

// Initialize with secondary app.
FirebaseApp.initializeApp(this /* Context */, options, "secondary");

// Retrieve secondary app.
FirebaseApp secondary = FirebaseApp.getInstance("secondary");
// Get the database for the other app.
FirebaseDatabase secondaryDatabase = FirebaseDatabase.getInstance(secondary);

另见:

  • using multiple build flavors 上的文档部分(我现在从中复制了代码片段)
  • 我的(我认为文档中的代码片段起源于此)