我一直在关注以下文档:https://firebase.google.com/docs/firestore/query-data/queries#collection-group-query https://firebase.google.com/docs/firestore/query-data/queries#collection-group-query
我的数据结构大致是这样的:
/teams/{teamid}
{
displayName: "Company X Team",
owner: "userid",
}
/teams/{teamid}/invites/{emailAddressAsKey}
{
someProp: "my data"
}
在我的网络应用程序中,我想搜索所有不同团队的记录,以查找 id/key 等于我传入的电子邮件地址的邀请。阅读完文档后,我认为集合组查询就是我想要的寻找。但是,我的情况与示例不完全匹配。我想匹配键,而不是文档中的道具。我想我可以再次添加电子邮件地址作为道具,但这感觉不对。
您必须将文档 ID 作为文档本身的键。目前没有其他解决方案。
使用起来很诱人FieldPath.documentId()
in a where
条款(例如,按照 Alex Mamo 的回答https://stackoverflow.com/a/56967352/2518722 https://stackoverflow.com/a/56967352/2518722),但这在一般情况下不起作用。原因是FieldPath.documentId()
实际上是指文档的完整、唯一 ID,包括其路径。
如果您尝试这样做,您将收到以下错误:
错误:查询集合组并排序时
FieldPath.documentId(),对应的值必须是有效的
文档路径,但“”不是因为它包含一个奇怪的
段数。
基本上是where
子句仅适用于键/值搜索,不适用于文档 ID。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)