在React Native中初始化Firebase的优化方法



在构建应用程序时,我无法在expo react native中以优化形式初始化firebaseV9。我从V8切换到V9,计数器不同的错误,这对我来说没有意义。

module idb missing from file "...node_modules@firebaseappdistesm...一样,我甚至创建了一个metro.config.js文件。

Firebase could not be found within the project,当它出现在(Firebase V8)。

这个错误,我想知道at node_modulesreact-nativeLibrariesLogBoxLogBox.js:149:8 in register是怎么回事。Error at node_modulesreact-nativeLibrariesLogBoxLogBox.js:60:8 in errorImpl....,这是问题或检查这个问题

undefined is not an object (evaluating '_app.default.apps').

所有这些问题及其答案都可以在stackoverflow上找到。但他们都不适合我。我不是在详细阐述这些问题,只是给你们一些想法。所以我尝试了一些方法,并且成功了。

在上面的问题中,我告诉了一些错误,经过多次搜索,我能够解决我的问题。

首先,我删除.expo,.expo-share,node_modules,package-lock.jsonyarn.lock(如果有的话)。然后是yarn installnpm install

第二,将firebase代码更改为V9的. 我看到很多人建议降级到V8当上述错误发生时,他们不需要。

import { initializeApp, getApps, getApp } from "firebase/app";
import { getAuth } from "firebase/auth";
import { getFirestore } from "firebase/firestore";
// import others as you need
const firebaseConfig = { ... };
let app;
if (getApps().length === 0) app = initializeApp(firebaseConfig);
else app = getApp();
const db = getFirestore(app);
const auth = getAuth();
export { auth, db };

V8

import firebase from "firebase/app";
import "firebase/auth";
import "firebase/firestore";
// import others as you need
const firebaseConfig = { ... };
let app;
if (firebase.apps.length === 0) app = firebase.initializeApp(firebaseConfig);
else app = firebase.app();
const db = app.firestore();
const auth = firebase.auth();
export { auth, db };

我提到过创建一个metro.config.js当我在这个问题中阅读评论时,有些人感到困惑,是否存在与firebase或metro文件相关的问题。对我来说,我想它是一个火力基地。如果你仍然得到这个错误,那么降级到firebase@9.6.11,见这里

我给出了2个错误的参考,其他2个很容易得到。它对我有用,我希望这对你们中的任何一个人都有帮助。

最新更新