Ошибка типа: change.after.val не является функцией firebase

#javascript #node.js #firebase #google-cloud-firestore #google-cloud-functions

#javascript #node.js #firebase #google-облако-firestore #google-cloud-функции

Вопрос:

Привет, я пытаюсь прочитать изменения в моей базе данных firestore

 'use stricts'

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const nodemailer = require('nodemailer');
require('dotenv').config();

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

exports.sendOrderCompletionEmail = functions.firestore.document('/service-requests/{req_id}')
    .onUpdate((change, context) => {
        const req = context.params.req_id;
            
        const sts = change.after.val();  //Error on this line
                
        console.log(sts);
                
    });

  

Я получаю эту ошибку

 TypeError: change.after.val is not a function
  

Я хочу прочитать изменения в моем документе и вернуть измененное значение поля

Ответ №1:

Поскольку вы запускаете свою облачную функцию путем обновления документа Firestore, вам необходимо выполнить

 const sts = change.after.data();
  

Более подробную информацию см. В документе.


На самом деле мы используем val() метод для облачных функций, запускаемых событием базы данных в реальном времени.

Firebase предлагает два решения для баз данных NoSQL: Cloud Firestore и базу данных реального времени. Смотрите Этот документ для получения более подробной информации.