我的实时数据库有这种结构
- userId1
- meta
- name
- data
- dataId1
- description
- dataId2...
- userId2....
我试图监控dataIdx的添加内容,但也希望获得name
字段。我尝试了以下方法,但误用了parent
方法。所以我认为该行被注释掉了,但是.once
是异步的,这开始使我的代码更复杂,而在examples中有set
的调用或多或少是同步的
exports.sendNotification = functions.database.ref('/{userId}/presents/{dataId}')
.onWrite(event => {
var eventSnapshot = event.data;
var person = eventSnapshot.parent().parent().child("meta").child("name").val();
// var person = admin.database().ref('/' + event.params.userId + '/meta/name').once().val();
let p = eventSnapshot.child("description").val();
console.log(`${person} added ${p}`);
这样做的正确方法是什么
答案 0 :(得分:0)
这就是我使用链式承诺来构建我的数据
exports.sendNotification = functions.database.ref('/{userId}/presents/{presentId}')
.onWrite(event => {
let p = eventSnapshot.child("description").val();
return event.data.ref.parent.parent.child('meta/name').once("value")
.then(snapshot => {
let person = snapshot.val();
var payload = {
data: {
person: person,
...
}
};