Firebase / Firestore:是否可以查询.where(x == foo || x == bar)?

时间:2019-05-10 09:15:14

标签: firebase google-cloud-firestore

我有一个用户集合,看起来像这样:

enter image description here

每个关注者/以下文档的结构如下:

{
  uid: ...,
}

我想创建一个满足以下条件的查询:

  1. 获取您关注的用户
  2. 按他们的“ lastPosted”时间排序(因此,您将获得最近发布过的用户)

由于关注者/以下子集合仅包含对完整用户文档的引用,而不包含对完整文档本身的引用,因此它不像查询以下子集合那样容易。


这是我尝试过的:

database
.collection('users')
.doc(myUid)
.collection('following')
.get()
.then(followings => {
  database
  .collection('users')
  .orderBy('lastPosted', 'desc')
  .where('uid', '==', following[0] || following[1] ...)
})

这不起作用。我也考虑过:

database
.collection('users')
.orderBy('lastPosted', 'desc')
.where(myUid exists in their followers subcollection)

我不确定从这里去哪里,或者不确定Firestore是否允许这样做。

1 个答案:

答案 0 :(得分:1)

请参阅:

  

逻辑或查询。在这种情况下,您应该为每个OR条件创建一个单独的查询,然后将查询结果合并到您的应用中。