在Android的Firebase Firestore中创建复杂的查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Android的Firebase Firestore中创建复杂的查询相关的知识,希望对你有一定的参考价值。

我有一个“ Orders”集合,具有这样的结构

dishname :
  "Biryani"
dishprice: 
  "350"
dishquantity: 
  "1"
hotelemail: 
  "apk@gmail.com"
hotelname : 
  "Apk"
time
  April 13, 2020 at 2:51:11 PM UTC+5
useremail
  "checking@gmail.com"
username
  "pasha"
usernum
  "03416889912"
orderstatus
  "Pending"

现在,我要对此集合执行查询,就像这样获得所有订单,其中(orderstatus ==“待处理” OR(orderstatus ==“已收集” AND useremail =“ someemail”)OR(orderstatus ==“ disapched” AND useremail =“ someemail”)

答案

您要执行的操作无法在单个查询中完成,因为您在此处指定的方式为Firestore doesn't support logical OR。代替逻辑OR,您将不得不对每个OR条件执行单独的查询,并将结果合并到客户端中。因此,在您的特定情况下,您将需要三个查询:

  • orderstatus ==“待处理”
  • ((orderstatus ==“ collected” AND useremail =“ someemail”)
  • (orderstatus ==“ disapched” AND useremail =“ someemail”)

    然后您的代码可以获取结果并根据需要过滤出重复的文档。

以上是关于在Android的Firebase Firestore中创建复杂的查询的主要内容,如果未能解决你的问题,请参考以下文章

相同的 Flutter Web 构建使用 `dhttp` 在本地运行,但使用 `firebase serve` 或 `firebase deploy` 失败

vue-cli v3 与 node.js firebase 函数,firebase 托管(错误:在函数源目录中找不到 npm 包)

在 Android 中启用 Firebase 崩溃报告

无法在 Android 中使用 Firebase 应用内消息?

在 Android 方面安装 firebase 的问题

我们如何在 firebase(android、kotlin)中记录错误?