Estoy usando el paquete de emuladores de firebase para probar mi aplicación. He configurado emuladores para hosting, autenticación, base de fuego y funciones.
Cuando intento crear un usuario desde el front-end usando firebase.auth().createUserWithEmailAndPassword() funciona bien.
Todos los demás emuladores también funcionan como se esperaba.
Puedo llamar a una función invocable desde mi front-end:
en público/app.js
const createUser = functions.httpsCallable('createUser'); createUser({ username: username, email: email, password: password, })en funciones/index.js
const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(); exports.createUser = functions.https.onCall((data, context) => { // creates a new user return admin.auth().createUser({ email: data.email, emailVerified: false, password: data.password, displayName: data.username, disabled: false }); });Se llama a esta función, sin embargo, no crea un usuario en el emulador de autenticación, sino en producción.
Quiero que mi usuario se cree en el emulador de autenticación, para que pueda activar funciones de autenticación en mi functions/index.js
Por ejemplo:
exports.userCreated = functions.auth.user().onCreate(user => { // creates a firestore document in users collection return admin.firestore().collection('users').doc(user.uid).set({ email: user.displayName }); }); No parece haber nada acerca de conectar Node.js Firebase SDK al emulador de autenticación ( admin.auth().useEmulator() is not defined ).
¿Cómo hago para indicarle a un SDK de administrador de nodos que use un emulador de autenticación local?
Seguí la respuesta de @Vazgen, y puedo confirmar que la actualización de firebase-admin a la última versión puede solucionarlo, la versión 9.9.0 a partir de este escrito.
npm install firebase-admin@latest