Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

349
Vistas
Cree varias instancias de Firebase para el mismo proyecto en Node.js

Tengo un servidor Node.js, dentro del cual quiero tener dos instancias de firebase.

Una instancia debe usar el SDK de JavaScript y se usará para proporcionar autenticación: iniciar sesión/registrarse. La otra instancia debe usar Admin SDK y se usará para leer/escribir desde Realtime Database. Quiero usar este enfoque, para no tener que autenticar al usuario antes de cada solicitud a Realtime DB.

He leído cómo se supone que debemos inicializar las instancias de Firebase para varios proyectos, pero no estoy seguro de si mi problema no proviene del hecho de que ambas instancias son para el mismo proyecto.
Mi problema es que puedo usar JS SDK sin ningún problema y puedo iniciar sesión/registrar al usuario, pero por alguna razón no puedo hacer que Admin SDK funcione.
Así es como estoy instanciando las aplicaciones:

 const admin = require("firebase-admin"); const { applicationDefault } = require('firebase-admin/app'); admin.initializeApp({ credential: applicationDefault(), databaseURL: 'my-database-url' }, 'adminApp'); const firebase = require("firebase/app"); firebase.initializeApp(my-config);

Ahora puedo usar JS SDK sin problemas, pero no Admin SDK. Creé un punto final de prueba para obtener datos de mi base de datos en tiempo real:

 app.get("/api/test", (req, res) => { const uid = 'my-user-UID'; admin.database().ref(`users/${uid}`) .once('value', (snapshot) => { if(snapshot) { console.log('data'); } else { console.log('no data'); } }); });

Ahora aquí como un enfoque para obtener los datos de la base de datos en tiempo real, probé todos los enfoques descritos posibles. Usando get with child y todo tipo de combinaciones posibles. Aquí hay un ejemplo de otro enfoque que usé:

 get(child(ref(admin.database()), `users/${uid}`)).then((snapshot) => { if (snapshot.exists()) { // retrieved data } else { // No data } }).catch((error) => { console.error(error); });

Para el primer enfoque, no obtuve ninguna respuesta, como si la primera once no se estuviera ejecutando. Para el segundo, creo que estaba obteniendo - typeerror: pathstring.replace is not a function firebase . En algún momento recibí una aplicación sin base de fuego '[predeterminada]' que se ha creado . Estos errores no me preocupan tanto, pero desde que vi el último error me concentré en la inicialización de las aplicaciones, pero aún así fue en vano.
Solo necesito una dirección de dónde podría estar viniendo mi problema.

Actualizar:

La solución es no pasar un segundo argumento (nombre de la aplicación) a ninguna de las inicializaciones de Firebase. Parece que no es necesario en caso de que haga referencia al mismo proyecto.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda