Firebase的云功能 - 如何检查孩子是否存在?

时间:2017-05-30 21:01:13

标签: javascript firebase firebase-realtime-database google-cloud-functions

我在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()

请告知如何检查孩子是否存在?谢谢!

1 个答案:

答案 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
  }
}