【问题标题】:Query firestore based on array contains and orderby基于数组 contains 和 orderby 查询 firestore
【发布时间】:2020-05-26 20:52:06
【问题描述】:

我将一些数据存储在firestore 中,如下所示:

我有一个名为 Items 的集合,在其中我有许多文档,每个文档都有自己的 ID,每个文档内部都有多个字段。

其中一个字段是 UserID,它显示了持有该项目的用户。

现在,我想查询firestore 的方式将返回所有受欢迎程度大于 3.5 的项目,并且我自己的 ID 不是 UserID 数组中显示的 ID 之一。

有什么选择吗?

目前我正在使用以下内容:

db.collection( "Items" ).orderBy( "Popularity", Query.Direction.DESCENDING ).whereGreaterThan( "Popularity", "3.5" ).limit( 50).get()

但它也会返回我的 ID 出现在数组中的结果。

【问题讨论】:

    标签: java android google-cloud-firestore


    【解决方案1】:

    Firestore 不提供任何用于检查文档中是否存在数据的查询。 Firestore 索引仅基于数据的存在工作 - 您无法有效地索引不存在的事物。因此,您的要求中“当我自己的 ID 不是 UserID 数组中显示的 ID 之一”的部分是不可能的。您可以改为在客户端应用程序中编写代码来过滤掉当前用户 UID 缺失的文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 2018-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-08
      相关资源
      最近更新 更多