Estoy desarrollando una aplicación nativa de reacción usando expo y firebase y estoy tratando de configurar el emulador local para probar/depurar. La creación de cuentas y el inicio/cierre de sesión funcionan en la base de datos real, pero cuando ejecuto estas funciones con el emulador de autenticación adjunto, obtengo lo siguiente:
Firebase: Error (auth/network-request-failed). at [native code]:null in construct at [native code]:null in construct at node_modules/@firebase/component/dist/esm/index.esm2017.js:348:0 in <global> at http://192.168.1.187:19000/node_modules/expo/AppEntry.bundle?platform=android&dev=true&hot=false&minify=false:182911:26 in FirebaseError at node_modules/@firebase/util/dist/index.esm2017.js:564:0 in <global> at node_modules/tslib/tslib.js:283:4 in <anonymous> at http://192.168.1.187:19000/node_modules/expo/AppEntry.bundle?platform=android&dev=true&hot=false&minify=false:185674:17 in <unknown> at node_modules/@firebase/logger/dist/index.cjs.js:103:8 in Logger at node_modules/@firebase/logger/dist/index.cjs.js:3:54 in <global> at http://192.168.1.187:19000/node_modules/expo/AppEntry.bundle?platform=android&dev=true&hot=false&minify=false:184314:35 in rejected at [native code]:null in flushedQueue at [native code]:null in callFunctionReturnFlushedQueueEsto ocurre tanto en un emulador de Android Pixel 5 como en mi teléfono real (galaxy s8+). Otras soluciones para este error parecen ser por razones de seguridad del navegador (es decir, CORS), pero eso no parece ser aplicable aquí. El código de conexión al emulador es:
import { initializeApp } from "firebase/app"; import {getAuth, connectAuthEmulator} from "firebase/auth"; import {getFirestore, connectFirestoreEmulator} from "firebase/firestore"; import {getFunctions, connectFunctionsEmulator} from "firebase/functions"; const firebaseConfig = {/* config object */}; const fbApp = initializeApp(firebaseConfig); export const fbAuth = getAuth(fbApp); connectAuthEmulator(fbAuth, "http://localhost:9099"); export const fbFunctions = getFunctions(fbApp); connectFunctionsEmulator(fbFunctions, 'localhost', 5001); export const db = getFirestore(fbApp); connectFirestoreEmulator(db, 'localhost', 8080);El puerto es correcto y la interfaz del emulador muestra que la autenticación funciona bien.