Ошибка при получении документа ReferenceError: from_data не определено - PullRequest
0 голосов
/ 07 декабря 2018

Привет, я застрял в той части, где я получаю ошибку при получении документов.Я хочу получить поля для имени пользователя.

Это результат, который я получаю из журнала консоли: от идентификатора пользователя: PGIfPp8wmnR1PB1XeiBfUgSnGO62F от пользователя: [обещание объекта] идентификатору пользователя [обещание объекта].

Что я делаю не так?

index.js

'use strict'

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

admin.initializeApp();

const db = admin.firestore();

exports.sendNotification = functions.firestore.document('users/{userID}/notifications/{notificationID}')
    .onWrite((change, context) => {

        const user_id = context.params.userID;
        const notification_id = context.params.notificationID;

        console.log('We have notification from: ' + user_id + ' The notification id is: ' + notification_id);

        return db.collection('users').doc(user_id)
            .collection('notifications').doc(notification_id).get().then(queryResult => {
                if (!queryResult.exists) {
                    console.log('No documents');
                }else{
                    console.log("Document data: " ,queryResult.data());
                    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();

                    console.log("From user id: " + from_user_id + "From user: " + from_data + " To user id " + to_data);

                }
                return Promise.all([from_data, to_data]).then(result => {

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

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

Ошибка, которую я получаю

Error getting document ReferenceError: from_data is not defined
    at db.collection.doc.collection.doc.get.then.queryResult (/user_code/index.js:31:37)
    at process._tickDomainCallback (internal/process/next_tick.js:135:7)

1 Ответ

0 голосов
/ 07 декабря 2018

В этих двух строках:

const from_data = admin.firestore().collection('users').doc(from_user_id).get();
const to_data = admin.firestore().collection('users').doc(user_id).get();

Вы присваиваете значения обещаниям, которые будут сопоставляться с данными документа.У вас еще нет фактических данных документа.Вам нужно использовать обещания, возвращаемые get(), чтобы найти фактические данные, так же, как вы делали это ранее в своей функции.

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