在FireBase中使用Where查询确切对象

时间:2019-03-06 08:10:58

标签: javascript firebase google-cloud-firestore

我有这样的结构

{
  comments: {
   ...anything here
  },
  flags: {
   flag1: true,
   flag2: false
  }
}

是否可以在firebase中查询确切的对象?

我试图这样使用它。

const documents = await adminSdk.firestore()
   .collection('posts')
   .where('flags', '===', { flag1: true, flag2: false })
   .get();


console.log(documents.data());

,但不会返回什么

有什么办法让我搞砸了吗?或者 Firebase 不能做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以像在带点的javascript中那样访问对象属性。

.where('flags.flag1', '==', true)
.where('flags.flag2', '==', true)

答案 1 :(得分:0)

您正在使用的运算符不在文档(firebase.google.com/docs/firestore/query-data/queries)

const documents = (await adminSdk.firestore()
   .collection('posts')
   .where('flags', '==', { flag1: true, flag2: false })
   .get()).docs.map(doc => doc.data());

应该给您一系列的帖子