我不知道为什么这不会向控制台记录除“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"
}
}
}
答案 0 :(得分:1)
云功能必须始终返回承诺(或者如果您不能,则至少返回一个值)。
您的函数应该按原样运行,但在日志中有延迟和错误,例如"函数返回未定义,预期的Promise或值"。运行函数的Cloud Functions实例可能会在函数在日志中成功写入消息之前关闭。
如果您按照以下方式更改代码,您将获得(准)即时回复:
exports.fanOutLink = functions.database.ref('/userLink/BLAH584H5BLAH30BLA/link').onWrite((change, context) => {
console.log('value is:'+change.before.val());
return true;
});
我建议您查看Firebase小组的这2个视频:https://www.youtube.com/watch?v=7IkUgCLr5oA&t=511s和https://www.youtube.com/watch?v=652XeeKNHSk&t=37s
按照我们的"讨论"在下面的评论中,您似乎使用了新的Cloud Functions语法,但使用的是旧版本的库。在重新部署之前,请查看此文档项:https://firebase.google.com/docs/functions/beta-v1-diff并按指示执行:
在functions文件夹中运行以下命令:
npm install firebase-functions@latest --save
npm installfirebase-admin@5.11.0 --save