繁体   English   中英

集合组上的 Firestore 查询不返回任何文档

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM