在Firestore中查询没有地图密钥的文档

时间:2019-08-15 02:25:45

标签: database firebase flutter dart google-cloud-firestore

我在Firestore中有几个文档,每个文档都包含一个用户ID映射。例如:

// Document 1
userIds: {
    "1": true,
    "2": true,
    "3": true,
    ...
}

// Document 2
userIds: {
    "2": true,
    "3": true,
    ...
}

// Document 3
userIds: {
    "2": true,
    "3": true,
    "4": true,
    ...
}

我想查找所有userIds映射不包含特定用户ID的文档。我尝试使用此查询:

.where('userIds.1', isEqualTo: null)

但是,这没有得到预期的结果。通过以上查询,将返回所有文档。相反,应返回文档2和3。

我该如何实现?

1 个答案:

答案 0 :(得分:1)

您无法查询文档中是否缺少数据。那不是Firestore索引的工作方式。索引通过在易于搜索的结构中记录值的存在来工作。它们无法存储不存在的几乎无限数量的值。如果要搜索某物,它实际上必须在已知位置具有一个值。