是否可以在Firestore查询中比较两个没有'array-contains'的数组?
类似这样的东西:
query = query.where(
"info.currentLocation",
"==",
currentUserBasicInfo.currentLocation
);
info.currentLocation
和currentUserBasicInfo.currentLocation
都是具有映射值的数组。我无法更改数据结构,并且查询中已经包含“数组包含”。因为两个数组必须相同才能运行,所以我觉得必须有一种比较两个数组的方法,而不必使用“ array-contains”或“ array-contains-any”或“ IN”。>
有什么建议吗?这可能吗?
答案 0 :(得分:1)
“数组包含”方法可以查询数组中的元素[1]。这意味着您可以将元素保留为数组,并轻松查询它们而不必求助于地图黑客。
如果您不想使用此方法,则可以使用另一种方法来迭代两个数组,直到根据需要匹配值为止。
但是,在本文档[2]中,您可以找到用于执行简单和复合查询的多个示例。
[1] https://firebase.google.com/docs/firestore/query-data/queries
[2] https://firebase.googleblog.com/2018/08/better-arrays-in-cloud-firestore.html