Firestore查询比较两个不包含数组的数组

时间:2020-06-22 17:48:17

标签: firebase react-native google-cloud-firestore

是否可以在Firestore查询中比较两个没有'array-contains'的数组?

类似这样的东西:

    query = query.where(
       "info.currentLocation",
       "==",
       currentUserBasicInfo.currentLocation
    );

info.currentLocationcurrentUserBasicInfo.currentLocation都是具有映射值的数组。我无法更改数据结构,并且查询中已经包含“数组包含”。因为两个数组必须相同才能运行,所以我觉得必须有一种比较两个数组的方法,而不必使用“ array-contains”或“ array-contains-any”或“ IN”。

有什么建议吗?这可能吗?

1 个答案:

答案 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