I’m trying to add Firebase to my React Native app that I’m developing using Expo and Expo Go. I”m using the FireBase JS SDK so I can use Expo Go. I’m also using FireStore. I’ve Followed the Expo documentation on using the SDK and I’m running into issues when I load the app. I’m getting the following Errors:
ERROR TypeError: Cannot read property 'cacheSizeBytes' of undefined, js engine: hermes
ERROR Invariant Violation: "main" has not been registered. This can happen if:
* Metro (the local dev server) is run from the wrong folder. Check if Metro is running, stop it and restart it in the current project.
* A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called., js engine: hermes
here is the relevant parts of my App.js file
import { initializeApp } from "firebase/app";
import { initializeFirestore, collection, doc, setDoc, addDoc } from 'firebase/firestore';
const firebaseConfig = { //all are filled in with correct data from FireBase
apiKey: "**************",
authDomain: "**************",
projectId: "**************",
storageBucket: "**************",
messagingSenderId: "**************",
appId: "**************",
measurementId: "**************"
};
const app = initializeApp(firebaseConfig);
const db = initializeFirestore(app);
I also have a useEffect to take some demo data and put it in FireStore
useEffect(() => {
const initializeDatabase = async () => {
try {
const usersCollectionRef = collection(db, 'users');
for (const user of Demo) {
const userDocRef = doc(usersCollectionRef, user.id.toString());
await setDoc(userDocRef, {
email: user.email,
password: user.password,
firstname: user.firstname,
charactername: user.charactername,
characterClass: user.characterClass,
characterLevel: user.characterLevel,
campaign: user.campaign,
bio: user.bio,
uri: user.uri,
likes: user.likes,
dislikes: user.dislikes,
matches: user.matches
});
const messagesCollectionRef = collection(userDocRef, 'messages');
for (const matchId of user.matches) {
const matchDocRef = doc(messagesCollectionRef, matchId.toString());
const matchMessages = user.messages
.filter(message => message.matchId === matchId)
.map(message => ({
senderId: message.senderId,
content: message.content,
timestamp: Timestamp.fromDate(new Date(message.timestamp))
}));
for (const message of matchMessages) {
await addDoc(collection(matchDocRef, 'messages'), message);
}
}
}
setIsDatabaseInitialized(true);
console.log('Database initialized successfully.');
} catch (error) {
console.error('Error initializing database:', error);
}
};
initializeDatabase();
}, []);
I’m using firebase 10.11.1 and have tried removing the metro file the expo docs says to make, remaking the metro file, and restarting the server.