如何在Cloud Firestore中高效地获取不同集合中具有特定id的文档



我正试图在我的数据库中获取多个使用相同id创建的文档。我知道使用collectionGroup和下面的代码可以做到这一点,但我正在寻找一种潜在的更高效、更干净的方法。

我读过这样一个问题:如何在Cloud Firestore中使用文档ID执行集合组查询,这表明必须将ID存储在字段中才能使用collectionGroup查找文档。

在我的情况下,具有myId的文档可以在两个不同的集合中,所以我想避免使用collectionGroup,因为我必须在两个独立的集合中这样做:

const collectionOneDocs = await firestoreInstance.get().collectionGroup('collectionOne').where('id', '==', myId).get();
const collectionTwoDocs = await firestoreInstance.get().collectionGroup('collectionTwo').where('id', '==', myId).get();

这段代码对我来说很有效,但我想做一个操作来访问文档,同时避免将id保存为文档中的字段,因为这并不是真正必要的。那么,在firestore中是否可以找到具有特定id的所有文档,或者这已经是firestore可用的最佳解决方案了?

非常感谢!

如果集合具有不同的名称,则无法通过单个查询从中获取结果。

所以你唯一的选择是:

  • 为每个集合(名称(运行一个单独的查询
  • 为集合指定相同的名称

最新更新