[英]Firestore query on collectionGroup returning no documents
我已经阅读了类似问题的所有答案,但问题和解决方案与我所遇到的不同,例如尝试查询已删除的文档,或者拥有属性而不是子集合。
我正在尝试计算所有 DrilledDepthTolerance.toleranceState 等于“notMeasured”的计数。
我已经按照错误消息中的链接运行了查询并在 FireStore 中设置了索引。 它在豁免项下的单字段索引中设置了以下内容:
我认为这可能是问题所在 - 文档似乎总是描述在复合索引下添加的索引,这是在单个字段下创建的?
这是我的代码(对不起,它在 c# 中):
try
{
var collectionRGroupRef = db.CollectionGroup("DrilledDepthTolerance");
Query query = collectionRGroupRef.WhereEqualTo("toleranceState", "notMeasured");
QuerySnapshot querySnapshot = await query.GetSnapshotAsync();
return querySnapshot;
}
catch (Exception e)
{
return null;
}
它返回零文档计数。
数据库有一个符合查询条件的文档。
我查看了示例,我的数据库设置似乎与示例中所需的设置相匹配。 从 Firestore 文档中,我将在我的数据库中查询的数据将与在此示例中搜索 first name = "Ada" 的子集合相同:
https://firebase.google.com/docs/firestore/manage-data/structure-data
我真的很感激一些关于我哪里出错的指示。
您的代码正在查询名为“DrilledDepthTolerance”的 collections:
var collectionRGroupRef = db.CollectionGroup("DrilledDepthTolerance");
据我所知,您没有任何具有该名称的 collections。 您正在显示一个文档,其中包含一个名为“DrilledDepthTolerance”的字段,该字段是一个 map,其中包含其他字段。
您的收藏实际上被命名为“holes”:
var collectionRGroupRef = db.CollectionGroup("holes");
您可以像这样查询嵌入的 toleranceState 字段的值:
Query query = collectionRGroupRef
.WhereEqualTo("DrilledDepthTolerance.toleranceState", "notMeasured");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.