首页 > 解决方案 > Firebase 功能:无法读取未定义的“user_id”

问题描述

我正在尝试使用我的移动应用程序将推送通知从一台设备发送到另一台设备功能。通过参考视频教程。这是我当前的 javascript 代码:

'use-strict'

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendNotification = functions.firestore.document("users/{user_id}/notification/{notification_id}").onWrite(event=> {

const user_id = event.params.user_id;
const notification_id = event.params.notification_id;
return admin.firestore().collection("users").doc(notification_id).get().then(queryResult=> {

        const from_user_id = queryResult.data();
        const from_data = admin.firestore().collection("users").doc(from_user_id).get();
        const to_data = admin.firestore().collection("users").doc(user_id).get();
        return Promise.all([from_data, to_data]).the(results =>{
            const from_name = results[0].data().name;
            const to_name = results[1].data().name;
            console.log("from :"+ from_name+" To "+ to_name);
        });


    });
});

这显示以下错误

TypeError: Cannot read property 'user_id' of undefined at exports.sendNotification.functions.firestore.document.onWrite.event (/user_code/index.js:9:30)
at cloudFunctionNewSignature (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:105:23)
    at cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:135:20)
    at /var/tmp/worker/worker.js:733:24
    at process._tickDomainCallback (internal/process/next_tick.js:135:7 

请帮我。

标签: node.jsfirebase-cloud-messaginggoogle-cloud-firestoregoogle-cloud-functions

解决方案


推荐阅读