firebase - Flutter Firebase ArrayContains Where 查询
问题描述
var searchRef = _firestore
.collection("vehicles")
.where("models.plane", isEqualTo: "true")
.where("models.bus", isEqualTo: "true");
在此查询方法中,我可以查询多个值,但我想动态地执行此操作。如果用户进入飞机,我想查询飞机或者如果用户进入飞机和公共汽车,我想查询飞机和公共汽车,或者如果用户进入飞机,公共汽车和跑车,我想查询飞机、公共汽车和跑车。也就是说,要查询的变量的数量和变量会因用户而异。
如何将此代码转换为动态代码。
解决方案
目前这是不可能的。您必须获取包含其中任何一个值的文档,然后在 Flutter 应用程序中手动过滤它们。
您只需将该数组作为arrayContains
.
var sRef = _firestore
.collection("vehicles1")
.where("models", arrayContains: item);
此查询将返回vehicles
集合中的所有文档,其中数组models
包含您传递的数组中的任何一项。然后您可以过滤该数组并检查哪些文档的模型数组包含所有这些项目。
推荐阅读
- angular - 检查后表达式已更改--> 复选框 mat-tree
- flutter - 在 Flutter 中,子部件如何阻止其可滚动父部件的滚动?
- postsharp - “将 postsharp 添加到此项目”不起作用
- bash - cron 运行的 bash 脚本的奇怪问题
- javascript - 接收用ajax发布的数据
- python - 按单词拆分字符串
- laravel - 如何使用 laravel 5.7 在数据选择器上禁用公共假期
- excel - VBA循环遍历所有工作表并清除单元格内容
- python - 线性回归预测以列表形式提供多个特征
- wcf - 如何避免使用 WCF 自定义绑定和自定义验证器对每个服务调用进行证书验证