Cloud Functions数据库事件始终包含空数据

时间:2017-10-02 06:02:36

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

我的云功能存在问题,我的所有数据库事件都返回空。例如,在以下事件中,event.data.val()将返回null。我正在进行更新操作,并通过使用shell以及部署后测试云功能来测试更新。

export const createSubscription = functions.database.ref('/users/{userId}/subscription').onWrite( event => {
  if(!event.data.val()) {
      return;
  }
});

但是我可以轻松地挂接到如下所示的auth.user()事件并接收数据。

export const createStripeUser = functions.auth.user().onCreate(event => {
  const user = event.data;
});

编辑:将数据传递到集合中,例如模拟器控制台上的下一个

createSubscription({
   testKey: 'testValue'
})
从我的前端

或以下内容

db.ref(`/users/23213213213/subscription`).update({ testKey: 'testValue'}); 

将在函数上返回null。

1 个答案:

答案 0 :(得分:0)

DougStevenson是对的。对于.onCreate(),你可以通过myDatabaseFunction(' new_data')来做正确的事。

使用.onWrite(),您需要像下面的示例一样传入前后。

如果我这样做,你可能会被卡住。请注意,我在最终JSON之前和之后都有一个大括号。没有它们,它没有正常工作。

addComment({before:{" comment":"在评论","角色":" guest"},之后:{ "评论":"评论","角色":"访客"}})

希望我的示例比通用字符串参数更有帮助。

祝你好运!