Firebase v9 版本的 firebase.apps.length

4
在React应用中,我通常会这样初始化firebase:
if (firebase.apps.length < 1) {
  firebase.initializeApp(firebaseConfig);
  // Initialize other firebase products here
}

这个在升级到v9 beta之前是完美运行的。我该如何使其适用于新版本?

顺便说一下,您不再需要检查新的SDK中是否已经存在Firebase的默认实例。 - Dharmaraj
2个回答

17

正确的方式是使用 getApps()

import { getApps, initializeApp } from "firebase/app";

if (getApps().length < 1) {
  initializeApp(firebaseConfig);
  // Initialize other firebase products here
}

-1
一个对于v9版本而言对我有效的简单解决方案是这样的:
import { initializeApp } from "firebase/app";

let firebase;

if (!firebase) {
  firebase = initializeApp(config)
}

2
你正在检查 firebase 是否为 false、undefined 或者 null。如果是这三者之一,那为什么 initializeApp 函数会被定义呢? - Shivam
没错,你发现得对。我在这里把v8和9搞混了。我已经修改了我的回答。 - Max
是的。此外,您可以只导入您想要使用的方法,而无需使用firebase常量。 - Shivam
我只是将其导出供在其他需要用到getFunctions()、getAuth()等函数的文件中使用。 - Max

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接