如何检查 Firebase 应用是否已在 Android 上初始化

在下面,第一次调用它时可以正常工作,但随后在后续调用中失败,并显示“FirebaseApp 名称 [DEFAULT] 已存在!

public FirebaseDatabase conn(Context c) {
         FirebaseOptions options = new FirebaseOptions.Builder()
                .setApiKey("key")
                .setDatabaseUrl("url")
                .setApplicationId("ID")
                .build();


        /////I tried Try and Catch with no success//////
        FirebaseApp app = FirebaseApp.initializeApp(c, options);

        /// for this : FirebaseApp app = FirebaseApp.initializeApp(c, options, "some_app");
        //// will fail with "FirebaseApp name some_app already exists!"
        return FirebaseDatabase.getInstance(app);
}

以上所有内容都是尝试连接到第二个 Firebase 应用。


答案 1

在 firebase 网络上,您可以检查是否已通过以下方式初始化:

if (firebase.apps.length === 0) {
    firebase.initializeApp({});
}

答案 2

在 v9 中,Firebase 已进行模块化处理,以便更好地摇动树木。因此,我们不能再导入整个应用程序并检查属性AFAIK。可以改用以下方法。apps

import { initializeApp, getApps, getApp } from "firebase/app";
getApps().length === 0 ? initializeApp(firebaseConfig) : getApp();

文档 https://firebase.google.com/docs/reference/js/v9/app.md#getapps


推荐