【发布时间】:2017-10-08 04:26:15
【问题描述】:
我的云函数存在问题,我的所有数据库事件都返回空。例如,在以下事件中 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。
【问题讨论】:
-
您能否编辑您的问题,以更具体地说明您正在执行的数据库写入应该将一些数据放入事件中,但没有?
-
@DougStevenson 刚刚更新了问题
-
您仍然没有说明您正在写入您希望触发函数的数据库的内容和位置。
-
我正在添加一个对象。让我再说明一下
-
一件事 - 你没有为 onWrite 正确调用模拟器函数。它有两个参数,一个是之前的数据,另一个是新的数据。 myDatabaseFunction({before: 'old_data', after: 'new_data' }) firebase.google.com/docs/functions/local-emulator
标签: firebase firebase-realtime-database google-cloud-functions