Creo que me estoy confundiendo entre firebase-admin y Web SDK . Simplemente me gustaría conectar un trabajo programado que envíe datos a mi Real-time database
Estructura del proyecto
Paquete.json
{ "name": "functions", "description": "Cloud Functions for Firebase", "scripts": { "serve": "firebase emulators:start --only functions", "shell": "firebase functions:shell", "start": "npm run shell", "deploy": "firebase deploy --only functions", "logs": "firebase functions:log" }, "engines": { "node": "14" }, "main": "index.js", "dependencies": { "firebase-admin": "^9.8.0", "firebase-functions": "^3.14.1" }, "devDependencies": { "firebase-functions-test": "^0.2.0" }, "private": true }¿Cómo puedo conectar correctamente mi función de nube programada a Firebase Database?
Aquí está mi index.js donde vivirán la mayoría de las funciones programadas
const functions = require("firebase-functions"); const admin = require("firebase-admin"); const serviceAccount = require("./serviceAccountKey.json"); //const { push } = require("firebase/database") admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: "myurl" }); const database = admin.database(); exports.scheduledFunction = functions.pubsub .schedule("every 1 minutes") .onRun((context) => { push(database, "/hello", { message: "world" }) return console.log("This will be run every 1 minutes!"); });El SDK de administración aún no es totalmente modular como el SDK de cliente, por lo que tendrá que usar la sintaxis de espacio de nombres si usa el SDK de administración:
const db = admin.database(); exports.scheduledFunction = functions.pubsub .schedule("every 1 minutes") .onRun((context) => { console.log("This will be run every 1 minutes!"); return db.ref('hello').push({ name: "Hellow" }); });