Saltar al contenido

¿Cómo obtener y configurar datos en Firebase con Node.js?

Solución:

Resolví mi problema. Acabo de descargar serviceAccount.json archivo de Firebase Console y lo inserté en mi proyecto. El archivo ‘Cuenta de servicio’ contiene todo lo que necesito.

var firebase = require('firebase');

firebase.initializeApp({
    databaseURL: 'https://*****.firebaseio.com',
    credential: 'myapp-13ad200fc320.json', // This is the serviceAccount.json file
});

Entonces, el siguiente código funcionó muy bien.

firebase.database().ref("https://foroayuda.es/").set({
    username: "test",
    email: "[email protected]"
});

Esta sintaxis / biblioteca específica para cuentas de servicio en node las aplicaciones están siendo obsoletas. El nuevo método para llegar a firebase en un servidor (es decir, no una aplicación de consumidor, como IoT o escritorio) es el firebase admin sdk.

Su código de inicialización ahora debería ser:

var admin = require("firebase-admin");

var serviceAccount = require("path/to/serviceAccountKey.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://<DATABASE_NAME>.firebaseio.com"
});

Aún puede ingresar manualmente sus credenciales, pero ahora están asignadas a una propiedad diff:

admin.initializeApp({
  credential: admin.credential.cert({
    projectId: "<PROJECT_ID>",
    clientEmail: "[email protected]<PROJECT_ID>.iam.gserviceaccount.com",
    privateKey: "-----BEGIN PRIVATE KEY-----n<KEY>n-----END PRIVATE KEY-----n"
  }),
  databaseURL: "https://<DATABASE_NAME>.firebaseio.com"
});

Enfrentamos el mismo problema con AWS Beanstalk. La causa principal fue porque n fue reemplazado por \n en la variable de clave privada.

Después de agregar la expresión regular de reemplazo, se corrigió:

"private_key": process.env.FIREBASE_PRIVATE_KEY.replace(/\n/g, 'n')

Imprimir las variables en el registro también podría ayudar a aislar el problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *