我在Firebase上有这样的数据库结构:
- members
|- -kSjJSDFjl2DFc
|- nationality: Australian
- statistics-nationality
|- American : 2
当“国籍 - 统计数据”更新时,“成员”正在监视onWrite。
我有这个代码来获取新成员的当前国籍价值,然后导航到统计 - 国籍,但我想知道是否存在特定国籍节点来选择设置或更新操作:
const currentNationality = event.data.current.child("nationality").val();
const statisticsNationality = event.data.ref.parent.parent.child('statistics-nationality');
let statisticsNationalityChild = statisticsNationality.child(currentNationality);
if (statisticsNationalityChild.exists()) { // No such an exists() method
// update
} else {
// create new nationality
}
但是,此行没有exists()
方法:
statisticsNationalityChild.exists()
请告知如何检查孩子是否存在?谢谢!
答案 0 :(得分:3)
如果我正确看到您的数据结构,那么statistics-nationality
不是触发该功能的事件数据的一部分。在这种情况下,您需要尝试读取数据以确定它是否存在:
const currentNationality = event.data.current.child("nationality").val();
const statisticsNationality = event.data.ref.parent.parent.child('statistics-nationality');
let statisticsNationalityChild = statisticsNationality.child(currentNationality);
statisticsNationalityChild.once("value").then((snapshot) => {
if (snapshot.exists()) {
// update
} else {
// create new nationality
}
}