Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

351
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda