如何在firestore文档中获取字段?

时间:2018-01-21 22:44:15

标签: javascript firebase google-cloud-functions google-cloud-firestore

我正在开发一些适用于Firestore的云功能。我想获取特定文档的字段列表。例如,我有even.data.ref的文档引用,但我不确定该文档是否包含我正在查看的字段。我想获得字段名称的列表,但我不知道该怎么做。 我试图使用Object.keys()方法获取数据的键列表,但我只得到一个数字列表(0,1 ...),而不是字段名称。
我尝试使用documentSnapShot.contains()方法,但似乎无效。

exports.tryHasChild=functions.firestore.document('cities/{newCityId}')
.onWrite((event) =>{
  if (event.data.exists) {
    let myRef = event.data.ref;
    myRef.get().then(docSnapShot => {
      if (docSnapShot.contains('population')) {
        console.log("The edited document has a field of population");
      }
    });

1 个答案:

答案 0 :(得分:0)

正如documentation on using Cloud Firestore triggers for Cloud Functions所示,您可以使用event.data.data()获取文档的数据。

然后,您可以使用JavaScript的Object.keys()方法迭代字段名称,或者测试数据是否包含带有简单数组检查的字段:

exports.tryHasChild=functions.firestore.document('cities/{newCityId}')
.onWrite((event) =>{
  if (event.data.exists) {
    let data = event.data.data();
    Object.keys(data).forEach((name) => {
      console.log(name, data[name]);
    });
    if (data["population"]) {
      console.log("The edited document has a field of population");
    }
});