【发布时间】:2021-10-01 23:39:15
【问题描述】:
我有这样的查询;
final _firestore = FirebaseFirestore.instance;
var sRef = _firestore
.collection("vehicles")
.where("models.car", isEqualTo: "true")
.where("models.plane", isEqualTo: "true")
.where("models.motor", isEqualTo: "true");
通过这个查询,我可以同时查询哪个列表包括汽车、飞机和电机。但我想动态查询。因此我做了这个 for 循环;
List<String> item = ["car", "motor", "plane"];
var sRef;
for (int i = 0; i < item.length; i++) {
sRef = _firestore
.collection("vehicles").where("models.$item[i]", isEqualTo: "true");
}
但它并没有像我预期的那样工作。
当我想使用 for 循环显示包含项目列表中的元素的列表时,代码还会向我显示包含项目列表中最后一个元素的列表。
例如,在这个例子中,它显示了包含汽车、电机和飞机的列表,它还显示了仅包含飞机的列表,但我不想只显示包含飞机的列表,我只是想要显示包含汽车、马达、飞机的列表。
这些是我的 Firebase 文档。
当我使用上面编写的 for 循环运行代码时,我会得到这样的输出,但我只想得到名为 ALL 的列表。
为什么我得到名为 PLANE 的列表和名为 ALL 的列表。我只想列出名为 ALL。以及如何动态地进行查询。
不知何故,我需要使我在顶部显示的查询动态化,但正如我上面提到的,我使用的 for 循环不适用于这项工作。
【问题讨论】:
标签: arrays firebase flutter google-cloud-firestore