Функции Firebase: не может прочитать свойство 'post_id' из неопределенного - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь сделать простую функцию firebase для приложения чата с моим мобильным приложением. Это мой текущий код JavaScript:

'use-strict'

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

admin.initializeApp(functions.config().firebase);

const db = admin.firestore();
db.settings({ timestampsInSnapshots: true });

exports.sendCommentNotification=functions.firestore.document("Notifications/{user_id}/Comment/{comment_id}").onWrite((change,context)=> {

    const user_id=context.params.user_id;
    const comment_id=context.params.comment_id;

  console.log(user_id+":"+comment_id);

return admin.firestore().collection("Notifications").doc(user_id).collection("Comment").doc(comment_id).get().then((queryResult)=>{

        const post_id=queryResult.data().post_id;
        const admin_user_id=queryResult.data().admin_id;
        const noti_id=queryResult.data().notification_id;
        const timestamp=queryResult.data().timestamp;
        const post_desc=queryResult.data().post_desc;

        const admin_data=admin.firestore().collection("Users").doc(admin_user_id).get();
        const commenter_data=admin.firestore().collection("Users").doc(user_id).get();

        return Promise.all([commenter_data,admin_data]).then(result=>{

            const commenter_name=result[0].data().name;
            const commenter_image=result[0].data().image;
            const admin_token=result[1].data().token_id;
            const admin_name=result[1].data().name;

Мой журнал Firebase

TypeError: Cannot read property 'post_id' of undefined
    at admin.firestore.collection.doc.collection.doc.get.then (/user_code/index.js:20:41)
    at process._tickDomainCallback (internal/process/next_tick.js:135:7)

1 Ответ

0 голосов
/ 02 октября 2018

queryResult.data() возвращает undefined, что означает, что запрошенный вами документ не существует.Вы должны проверить логическое значение queryResult.exists, чтобы увидеть, существует ли документ на самом деле, прежде чем пытаться получить доступ к его данным.См. Документацию для DocumentSnapshot для получения более подробной информации - вот что такое queryResult.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...