node.js - Funciones de Firebase: no se puede leer la propiedad ''user_id'' de undefined
firebase-realtime-database firebase-cloud-messaging (1)
Estoy tratando de hacer una función simple de hello world firebase con mi aplicación móvil, quiero registrar la ID de usuario para poder ver que la función funciona. Este es mi código javascript actual:
const functions = require(''firebase-functions'');
const admin = require(''firebase-admin'');
admin.initializeApp(functions.config().firebase);
exports.sendNotification = functions.database.ref(''/notifications/{user_id}'').onWrite((event) => {
console.log(''Testing stuff'', event.params.user_id);
return;
});
Se activa cuando se escriben nuevos datos en una tabla de base de datos específica, pero aparece este error:
TypeError: Cannot read property ''user_id'' of undefined
at exports.sendNotification.functions.database.ref.onWrite (/user_code/index.js:8:44)
at Object.<anonymous> (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:112:27)
at next (native)
at /user_code/node_modules/firebase-functions/lib/cloud-functions.js:28:71
at __awaiter (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:24:12)
at cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:82:36)
at /var/tmp/worker/worker.js:700:26
at process._tickDomainCallback (internal/process/next_tick.js:135:7)
Necesita instalar las últimas funciones de firebase y firebase-admin:
npm install firebase-functions@latest firebase-admin@latest --save
npm install -g firebase-tools
para poder usar la nueva API, consulte aquí para obtener más información:
https://firebase.google.com/docs/functions/get-started#set_up_and_initialize
Cambia esto:
const functions = require(''firebase-functions'');
const admin = require(''firebase-admin'');
admin.initializeApp(functions.config().firebase);
exports.sendNotification = functions.database.ref(''/notifications/{user_id}'').onWrite((event) => {
console.log(''Testing stuff'', event.params.user_id);
dentro de esto:
const functions = require(''firebase-functions'');
const admin = require(''firebase-admin'');
admin.initializeApp();
exports.sendNotification = functions.database.ref(''/notifications/{user_id}'').onWrite((change, context) => {
console.log(''Testing stuff'', context.params.user_id);
Para los eventos
onWrite
yonUpdate
, el parámetro de datos tiene camposbefore
yafter
. Cada uno de estos es unDataSnapshot
con los mismos métodos disponibles en admin.database.DataSnapshot
params
Un objeto que contiene los valores de los comodines en el parámetro de ruta proporcionado al método ref () para un desencadenador de base de datos en tiempo real.
Más información aquí: