如何检查文档是否在Cloud Firestore中包含属性?

时间:2018-10-25 02:54:28

标签: node.js firebase google-cloud-firestore

我想知道是否可以检查Cloud Firestore文档中是否存在属性。 document.contains("property_name")之类的东西,或者是否存在文档属性。

4 个答案:

答案 0 :(得分:2)

要解决此问题,您可以像下面这样简单地检查DocumentSnapshot对象是否为空:

var yourRef = db.collection('yourCollection').doc('yourDocument');
var getDoc = yourRef.get()
    .then(doc => {
      if (!doc.exists) {
        console.log('No such document!');
      } else {
        if(doc.get('yourPropertyName') != null) {
          console.log('Document data:', doc.data());
        } else {
          console.log('yourPropertyName does not exist!');
        }
      }
    })
    .catch(err => {
      console.log('Error getting document', err);
    });

答案 1 :(得分:0)

使用客户端SDK,无法查询Firestore文档的一个字段,无论是其值还是其存在/存在。

您必须查询整个文档并选中此特定字段。

答案 2 :(得分:0)

我认为您是指进行查询。 仍然没有办法检查Firestore中是否存在某些字段。但是您可以添加另一个值为 true / false

的字段
library(parallel)
no_cores <- detectcore(logical=F)-1
c1 <- makecluster(no_cores)
parallel::clusterEvalQ(c1, c("PerformanceAnalytics", "fractal"))
DFA_SS_FS <- parApply(c1, ss_y, FUN=apply(ss_y,3,function(x){ DFAfunction(x) })))

查看此链接以了解更多

https://firebase.google.com/docs/firestore/query-data/queries How do I get documents where a specific field exists/does not exists in Firebase Cloud Firestore?

答案 3 :(得分:0)

您可以像下面的代码段一样使用in运算符

  const ref = admin.firestore().collection('yourCollectionName').doc('yourDocName')
  try {
    const res = await ref.get()
    const data = res.data()    
    if (!res.exists) {
      if (!("yourPropertyName" in data)) {
         // Do your thing
      }
    } else {
         // Do your other thing
    }
  } catch (err) {
    res.send({err: 'Something went terribly wrong'})
  }