在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 包)