Recientemente actualicé a firebase v9 desde v8 en mi proyecto React Native y ahora no puedo usar mis métodos heredados de firestore v8.
[Unhandled promise rejection: FirebaseError: Failed to get document because the client is offline.] Inicializo firebase en un archivo al que llamo fire-config.js. El comentado //import firebase from 'firebase'; es como importé previamente firebase en v8.
Luego importaría fuego desde fire-config.js a mis métodos de controlador. Ej: userController.js.
Probé un par de combinaciones diferentes de /compat y /compat/app sin éxito. Estaba siguiendo la guía de actualización ( https://firebase.google.com/docs/web/modular-upgrade ) que entendí fue actualizar la ruta y eso era todo lo que se necesitaba.
"firebase": "9.0.2", //import firebase from 'firebase'; import firebase from 'firebase/compat'; require("firebase/functions"); // For Firebase JS SDK v7.20.0 and later, measurementId is optional const firebaseConfig = { apiKey: "XXXXX", authDomain: "XXXXX", databaseURL: "XXXX", projectId: "XXXX", storageBucket: "XXXX", messagingSenderId: "XXXXX", appId: "XXXX", measurementId: "XXXXX" }; try { firebase.initializeApp(firebaseConfig); } catch(err){ if (!/already exists/.test(err.message)) { console.error('Firebase initialization error', err.stack)} } const fire = firebase; export {fire}; import {fire} from "../config/fire-config"; const getUserDetail = async (user) => { let userDetail = {}; await fire .firestore() .collection("users") .doc(user.uid) .get() .then((doc) => { if (doc.exists) { userDetail = { id: doc.id, ...doc.data(), }; } }); return userDetail; };