所以,我的问题是,在我的firebase函数中,我似乎无法获得console.log
的任何内容。
在functions/index.js
我有:
const functions = require("firebase-functions");
const admin = require("firebase-admin");
try {
admin.initializeApp(functions.config().firebase);
} catch (e) {
console.log("dbMessagesUpdate initializeApp failure");
}
exports.onMessagesUpdate = functions.database.ref("/messages/basic_message").onCreate((snap, context) => {
console.log("SNAP: ", snap.val());
});
在终点站:
firebase deploy --only functions
// The function shows up in my functions list.
// also, it would be nice to just test functions locally, but when I run
// `firebase serve --only functions` I get An unexpected error occurred...
然后,我将新数据添加到Firebase实时数据库的/messages/basic_message
。
当我检查我的firebase功能网站仪表板中的日志时,它会显示(i)信息标签,但没有其他内容。
在终端:
firebase functions:log
返回:
2018-05-27T19:14:54.159Z N onMessagesUpdate: undefined
不确定我错过了什么。这个问题是由于没有在Firebase上设置结算信息吗?为什么undefined
?
答案 0 :(得分:1)
/messages/basic_messages
可能已经存在。
而是检查添加到其中的元素:
var ref = functions.database.ref("/messages/basic_messages");
ref.on("child_added", function(snapshot, prevChildKey) {
var newMessage = snapshot.val();
console.log("Author: " + newMessage.author);
console.log("Previous Post ID: " + prevChildKey);
});
答案 1 :(得分:0)
functions.database.ref("/messages/basic_message").onCreate()
仅响应名为/messages/basic_message
的新创建节点。如果该节点在更改之前存在,则不会调用该函数。
如果您想知道该节点在创建后是否以任何方式发生了变化,请改用onUpdate()
。
如果您想知道某个孩子是否在/messages/basic_message
下的任何位置创建,请改用:
functions.database.ref("/messages/basic_message/{id}").onCreate(...)