我正在使用使用Firebase触发器的函数。我的触发器没有启动是有原因的吗?

时间:2019-10-19 01:02:14

标签: firebase-realtime-database google-cloud-firestore google-cloud-functions

有人可以帮助我!!!我是使用Firestore Google功能的新手。我遵循了文档,接下来是我的代码:我的问题是没有触发第一个功能,可能是缺少我的东西,但是我不知道,请帮忙!!!

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

//This part should execute when I realize a update over firebase, but never is activated
exports.updateExistences = functions.database.ref('vouchers/{id}/cajas').onUpdate(async (change:any) => {
    // console.log(context.params);
    console.log('Before: ' +  JSON.stringify(change.before.child));
    console.log('After: ' + JSON.stringify(change.after.child));
});
//This trigger is activated and it is look like the trigger before but with firestore.document. So then I need to do triggered the trigger before, because according the documentation that way of trigger can be used with a path that return the data from the child node. 
exports.updateExistences1 = functions.firestore.document('vouchers/{id}')
.onUpdate((snapshot:any, context:any) => {
    // console.log(context.params);
    console.log('Before: ' +  JSON.stringify(snapshot.before.data()));
    console.log('After: ' + JSON.stringify(snapshot.after.data()));
    
});

1 个答案:

答案 0 :(得分:0)

您正在谈论Cloud Firestore,但是您的第一个Cloud Function被声明为在实时数据库的更改上触发。这两个数据库都是Firebase的一部分,但是它们是完全分开的,为一个数据库声明的函数不会触发向另一个数据库的写入。

如果您也希望第一个函数在更新Firestore时触发,则必须使用类似于第二个函数functions.firestore.document('...path to document(s)...').onUpdate(的语法进行声明。