【问题标题】:TypeError: Cannot read property 'from' of undefined at admin.firestore.collection.doc.collection.doc.get.then.queryResultTypeError:无法在 admin.firestore.collection.doc.collection.doc.get.then.queryResult 读取未定义的属性“来自”
【发布时间】:2019-07-01 00:45:15
【问题描述】:

所以我在这里失去理智了:/ 我正在尝试使用 Firebase 的功能在用户之间发送通知。

该函数似乎没问题,并且成功获取了路径(在日志上检查过),但是当尝试访问文档时,即使它存在,返回也是“无文档”。 我遇到了很多类似的问题,但没有找到解决方案,请帮助:)

这是函数:

'use-strict'

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

exports.sendNotification = functions.firestore.document("users/{user_id}/notifications/{notification_id}").onWrite((change,context) =>{ 

    const user_id = context.params.user_id;
    const notification_id = context.params.notification_id;
    console.log("User ID: " + user_id + " | Notification ID: " + notification_id);

    return admin.firestore().collection("users").doc(user_id).collection("notifications").doc("notification_id").get().then(queryResult =>{
            if (!queryResult.exists) {
                    console.log('No documents');
                    return null;

            }else{
                const from_user_id = queryResult.data().from;

                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]).then(result =>{

                    const from_name = reuslt[0].data().name;
                    const to_name = reuslt[1].data().name;

                    console.log("FROM: " + from_name + " TO: " + to_name);
                    return null;
                });
            }
    }).catch(err =>{ console.error('Error getting document', err); }); });

这是来自 firebase:

1:00:23.767 AM sendNotification 函数执行耗时 189 毫秒,完成状态为:'error'

1:00:23.762 AMsendNotification TypeError:无法读取属性“来自” 未定义的 admin.firestore.collection.doc.collection.doc.get.then.queryResult (/user_code/index.js:15:44) 在 process._tickDomainCallback (内部/进程/next_tick.js:135:7)

上午 1:00:23.585 发送通知 用户 ID:mpIfC6Ca41eBdwNzwwX3GJaHIfb2 |通知 ID:v89cRRcV2np8IsAwbRu0

1:00:23.578 AM sendNotification 函数开始执行

【问题讨论】:

    标签: javascript android firebase google-cloud-firestore google-cloud-functions


    【解决方案1】:

    在路径中写入 ("notification_id") 而不是我创建的 const 中的 (notification_id)。

    只需要 2 小时就能弄清楚:|

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-08
      • 2020-12-24
      相关资源
      最近更新 更多