Tengo una aplicación React Native y tengo la siguiente función:
import firebase from './firebase' export function MainNavigator() { const [token, setToken] = useAtom(tokenAtom); useEffect(() => { firebase.auth().onIdTokenChanged(async (user) => { setToken(user ? await user.getIdToken() : null); }); }, []); ..... .... more codeEste código anterior funcionó en Expo, pero tengo un nuevo proyecto nativo de reacción (no creado con expo) y está fallando:
Tengo lo siguiente en mi archivo package.json :
"@react-native-firebase/app": "^13.0.1", "@react-native-firebase/functions": "^13.0.1", "firebase": "^9.5.0", Y mi archivo firebase.js es así (directorio raíz)
import * as firebase from "firebase/app"; // Your web app's Firebase configuration var firebaseConfig = { apiKey: "Secret stuff", authDomain: "Secret stuff", databaseURL: "Secret stuff", projectId: "Secret stuff", storageBucket: "Secret stuff", messagingSenderId: "Secret stuff", appId: "Secret stuff", measurementId: "Secret stuff" }; // Initialize Firebase firebase.initializeApp(firebaseConfig); export default firebase;Recibo el siguiente error:
TypeError: _firebase.default.auth no es una función. (En '_firebase.default.auth()', '_firebase.default.auth' no está definido)
Ninguno de los códigos que muestra importa el SDK de autenticación de Firebase. Entonces, cuando intenta usar firebase.auth() , indica correctamente que no puede encontrar ese SDK.
Supongo que también quieres importar el Auth SDK con algo como:
import "firebase/auth";También recomendaría consultar la documentación sobre la actualización al SDK v9 o v9/compat .
// Los paquetes compatibles con v9 son compatibles con API con el código v8
import firebase from 'firebase/compat/app'; import 'firebase/compat/auth'; import 'firebase/compat/firestore';