Node.js 通过collectionGroup按名称查询
因此,截至2019年5月8日,Firebase Firestore现在支持通过Node.js 通过collectionGroup按名称查询,node.js,google-cloud-firestore,firebase-admin,Node.js,Google Cloud Firestore,Firebase Admin,因此,截至2019年5月8日,Firebase Firestore现在支持通过collectionGroup('collectionName')查询同名子集合 有没有办法跨这些子集合检索相同docId的多个文档 这里有一个小的视觉例子,说明我正在努力实现的目标 collectionA - documentA : collectionB - documentC - documentB : collectionB - documentC 假设我想得到
collectionGroup('collectionName')
查询同名子集合
有没有办法跨这些子集合检索相同docId
的多个文档
这里有一个小的视觉例子,说明我正在努力实现的目标
collectionA
- documentA
: collectionB
- documentC
- documentB
: collectionB
- documentC
假设我想得到这两个documentC
文档。有没有办法做到这一点
我正在尝试使用的当前代码是:
const docIdFieldPath = FieldPath.documentId()
admin.firestore().collectionGroup('collectionB').where(docIdFieldPath, '==', 'documentC').get().then(...)
但是,我被抛出一个错误:
INVALID_ARGUMENT: Resource name "projects/myProject/databases/(default)/documents/documentB" lacks "/" at index 86.
关于这个问题的文档说,在尝试通过collectionGroup
进行查询之前,先创建一个索引,但如果我尝试通过在线索引门户进行查询,我会收到一个错误,即\uu name\uuu
字段是保留的
我是否遗漏了一些愚蠢的东西,或者这项功能还不受支持?Firestore团队的一些人告诉我这项功能不受支持。您不能根据文档ID的字符串进行过滤。移动SDK会给您一条更好的消息,但显然nodejs SDK不会
您可以改为将文档id存储为文档本身的一个字段,并对该字段进行筛选。Firestore团队的一些成员告诉我,这不受支持。您不能根据文档ID的字符串进行过滤。移动SDK会给您一条更好的消息,但显然nodejs SDK不会
您可以改为将文档的id存储为文档本身的一个字段,并在该字段上进行筛选。我也收到了该错误,但我不知道这是否是预期的功能。仅供参考,您的代码中似乎有一个额外的
集合(“collectionA”)
。那是打字错误吗?我希望它不会工作,因为collectionGroup()
只是Firestore
上的一种方法。您不能将集合组查询约束到特定集合的子集合。哎呀,好的@DougStevenson,这是一个输入错误。但有趣的是,我们知道没有一种方法可以限制收集组
!您是说您还不确定支持\uuu name\uuuu
查询的collectionGroup
查询是否是一项功能?谢谢我也有可能重复这个错误,但我不知道这是否是一个预期的功能。仅供参考,您的代码中似乎有一个额外的集合(“collectionA”)
。那是打字错误吗?我希望它不会工作,因为collectionGroup()
只是Firestore
上的一种方法。您不能将集合组查询约束到特定集合的子集合。哎呀,好的@DougStevenson,这是一个输入错误。但有趣的是,我们知道没有一种方法可以限制收集组
!您是说您还不确定支持\uuu name\uuuu
查询的collectionGroup
查询是否是一项功能?谢谢可能重复的