He creado una nueva aplicación en Firebase (no Firestore) a través del asistente de creación. Incluso ingresé algunos datos ficticios en mi base de datos a través de la interfaz de usuario web. ¿Cómo puedo recuperar estos datos del SDK fireabase-admin?
He inicializado mi aplicación así:
import admin from "firebase-admin"; var serviceAccount = require("../private-key.json"); const app = admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: 'https://<my-db-url>.firebaseio.com/' }); const db = app.database() db no parece tener ningún método get o set. ¿Qué me estoy perdiendo?
Siguiendo https://firebase.google.com/docs/database/admin/retrieve-data , no está claro qué es db.ref . ¿Necesito esto?
¿Cómo puedo recuperar los datos de mi base de datos?
El db.ref representa una ubicación específica en su base de datos y se puede usar para leer o escribir datos en esa ubicación de la base de datos.
Debe consultar firebase.database.Reference para conocer las propiedades y los métodos que puede usar.
Aquí hay un fragmento de muestra para leer datos de Firebase Realtime Database:
var admin = require("firebase-admin"); // Initialize the app with a service account, granting admin privileges admin.initializeApp({ databaseURL: "your-database-url" }); // admin.database.enableLogging(true); // As an admin, the app has access to read and write all data, regardless of Security Rules var db = admin.database(); var ref = db.ref("Users"); var getPromise = ref.once("value", function(snapshot) { console.log(snapshot.val()); }); return Promise.all([getPromise]) .then(function() { console.log("Transaction promises completed! Exiting..."); process.exit(0); }) .catch(function(error) { console.log("Transactions failed:", error); process.exit(1); }); En el fragmento anterior, usamos snapshot.val() para extraer un valor de un DataSnapshot . El método val() puede devolver un tipo escalar (cadena, número o booleano), una matriz o un objeto. También puede devolver un valor nulo, lo que indica que la instantánea de datos está vacía (no contiene datos).
También debe consultar DataSnapshot para conocer las propiedades y los métodos disponibles que puede usar.
También usamos el método Promise.all() que toma una iteración de promesas como entrada y devuelve una única promesa que se resuelve en una matriz de los resultados de las promesas de entrada. Esta promesa devuelta se resolverá cuando todas las promesas de la entrada se hayan resuelto, o si la iterable de entrada no contiene promesas, se detectará si se produce algún error.