第一次,很长时间。我正在构建一个基于Signal的移动聊天应用程序,我正在使用Expo Go和Firebase。我使用ExpoGo移动应用程序开发它,但当我想在本地web服务器上打开它时,我需要向firebase.js文件添加一些逻辑。我收到了以下错误,我不知道该怎么办。我找不到如何使用firebase文档调用getReactNativePersistence。
以前有人见过这个问题吗?
错误类型错误:无法读取未定义的js-engine:hermes的属性“getReactNativePersistence”
错误不变冲突:“main”尚未注册。如果出现以下情况,则可能发生这种情况:\
-
Metro(本地开发服务器)是从错误的文件夹中运行的。检查Metro是否正在运行,在当前项目中停止并重新启动它。
-
由于错误和
AppRegistry.registerComponent
没有被呼叫。,js引擎:hermes
这是firebase.js文件:
import { initializeApp } from 'firebase/app';
import {
firebaseAuth,
signInWithEmailAndPassword,
} from 'firebase/auth';
import { getFirestore } from 'firebase/firestore';
import AsyncStorage from '@react-native-async-storage/async-storage';
const firebaseConfig = {
# firebase config
};
const app = initializeApp(firebaseConfig);
let auth;
if (typeof document !== 'undefined') {
// Web environment
auth = firebaseAuth.getAuth(app);
firebaseAuth.setPersistence(auth, firebaseAuth.browserSessionPersistence);
} else {
// React Native environment
const reactNativePersistence = firebaseAuth.getReactNativePersistence;
auth = firebaseAuth.initializeAuth(app, {
persistence: reactNativePersistence(AsyncStorage)
});
}
const db = getFirestore(app);
// Exporting the necessary Firebase services and functions
export { db, auth, signInWithEmailAndPassword };
我使用chatgpt来帮助我排除故障,是的,它尝试了机器人,使用它解决了问题,但这更多的是一个警告。但现在我不确定发生了什么。停止应用程序运行。
这是在进行更改之前的文件。
import * as firebase from "firebase";
import "firebase/firestore";
import "firebase/auth";
// Initialize Firebase
const firebaseConfig = {
# firebase set up
};
let app;
if (firebase.apps.length === 0) {
app = firebase.initializeApp(firebaseConfig);
} else {
app = firebase.app();
}
const db = app.firestore();
const auth = firebase.auth();
export { db, auth };