似乎我找不到在Cloud Functions中使用read/write
函数进行管理的正确方法。我正在使用一个消息传递功能,该功能将使用Cloud Functions Node.js读取在实时数据库中创建的新消息,并使用快照来引用路径。这是我最初的导出功能:
var messageRef = functions.database.ref('Messages/{chatPushKey}/Messages/{pushKey}');
var messageText;
exports.newMessageCreated = messageRef.onCreate((dataSnapshot, context) => {
console.log("Exports function executed");
messageText = dataSnapshot.val().messageContent;
var chatRef = dataSnapshot.key;
var messengerUID = dataSnapshot.val().messengerUID;
return readChatRef(messengerUID, chatRef);
});
这是从返回的值中读取的函数:
function readChatRef(someUID, chatKey){
console.log("Step 2");
admin.database.enableLogging(true);
var db;
db = admin.database();
var userInfoRef = db.ref('Users/' + someUID + '/User Info');
return userInfoRef.on('value', function(snap){
return console.log(snap.val().firstName);
});
}
在firebase云功能日志中,我可以读取除return userInfoRef.on...
中的一个控制台之外的所有console.logs。我的语法不正确吗?我尝试了其他几种方法来读取快照。也许我没有有效地使用回调?我知道我的服务帐户密钥和管理功能是最新的。
如果还有其他需要重点关注的方向,请告诉我。