【发布时间】:2018-10-16 11:17:06
【问题描述】:
我不知道为什么除了“null”或“undefined”之外什么都不会记录到控制台。我正在通过 Google Cloud Platform 测试浏览器界面对此进行测试。我也尝试用相同的结果记录 EVENT(而不是 CHANGE 和 CONTEXT)。我也尝试过打开安全规则,但这也没有帮助。非常感谢任何建议。
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.fanOutLink = functions.database.ref('/userLink/BLAH584H5BLAH30BLA/link').onWrite((change, context) => {
console.log('value is:'+change.before.val());
});
这是我用来测试上面代码的 JSON:
{
"userLink": {
"BLAH584H5BLAH30BLA": {
"link": "https://blabla.com"
}
}
}
【问题讨论】:
-
您确定要更改数据,而不是添加/删除数据吗?
change.before只会对更新/删除有一个值。在写入新数据时,它将是一个空快照。 -
@FrankvanPuffelen 是的,我很肯定我正在更改链接值。谷歌云平台测试界面输出为:错误:函数执行失败。详细信息:无法读取未定义的属性“val”
-
我实际上不确定 GCP 测试接口是否使用您期望的参数调用 Firebase 的函数。希望其他人可以证实这一点。
-
我建议您确保您的函数在使用 Firebase CLI 部署时按照您期望的方式工作,并使用您在GCP 测试接口。我不确定测试界面是否会按照您对 Firebase 事件的预期方式工作。
标签: firebase firebase-realtime-database google-cloud-platform google-cloud-functions