使用Firebase数据库触发器onUpdate

时间:2019-04-21 03:50:48

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

当我在Firebase数据库中的ignore字段更改时,我试图触发一个触发器。

const functions = require('firebase-functions');
const admin = require('firebase-admin')
admin.initializeApp(functions.config().firebase)
// // Create and Deploy Your First Cloud Functions - All runs in the Firebase Server, not in the Browser
// // https://firebase.google.com/docs/functions/write-firebase-functions

exports.dbTest = functions.database.ref('/{uid}/ignore')
    .onUpdate((snap, context) => {

        return snap.ref.child('new').set('dddddd')

      });

为进行简单测试,我在参考文献onUpdate上创建了一个/{uid}/ignore触发器,该触发器指向下图所示的内容。我期望手动更改字段时会触发此操作(比如说ignore/endTime,但是什么也没发生。我对此并不陌生,所以我很困惑如何使用它。请帮忙。

enter image description here

编辑

该函数被触发,但没有任何反应。日志显示Function execution took 224 ms, finished with status: 'error',没有任何有用的日志消息。

1 个答案:

答案 0 :(得分:1)

您似乎误读了签名。 onUpdate()触发器被Change object调用。从该对象中,您可以获得快照beforeafter的更新,而从任一快照中都可以获取引用。

所以:

exports.dbTest = functions.database.ref('/{uid}/ignore')
    .onUpdate((change, context) => {

        return change.after.ref.child('new').set('dddddd')

      });