如何通过 Firebase SDK 访问 Firestore 中的虚拟文档?

Posted

技术标签:

【中文标题】如何通过 Firebase SDK 访问 Firestore 中的虚拟文档?【英文标题】:How to access virtual documents in Firestore through Firebase SDK? 【发布时间】:2021-01-27 09:30:49 【问题描述】:

我是初学者,我的 firestore 数据库有一个包含文档的集合,每个文档都有一个没有任何其他字段的子集合。我找不到一种方法来访问空文档的 ID 并使用 SDK 获取与文档关联的子集合。我可以在控制台上执行此操作,但我要做的事情太多,而且现在还不能对我的应用程序进行更改,所以我需要使用 SDK。请建议我使用控制台访问它们的方法。

【问题讨论】:

您能否展示您的 Firestore 数据库/控制台的图像并准确指出您正在谈论的文档和集合? 【参考方案1】:

如果你知道子集合的CollectionReference,你可以通过CollectionReferenceparent属性轻松获取父DocumentReference。在DocumentReference 中,您只需要使用id 属性即可。

您没有分享有关数据模型的太多细节,因此很难就如何找到CollectionReference 提供更多指导。 Mark 的回答提出了一些可能的方法。

【讨论】:

【参考方案2】:

所以,我使用集合组查询(collectionGroup)查询子集合中的文档(具有相同的ids),并通过parent属性找到父文档的ID。 非常感谢 @mark carlton 和 @Renaud Tarnec 提出的这些建议。

【讨论】:

【参考方案3】:

案例 1:如果跨多个文档查询子集合,您可以使用集合组查询来查询同名集合,而不管它们在层次结构中的位置如何。这样您实际上不需要知道文档的 ID 案例 2:在这种情况下使用您会记住的文档 ID,而不是为 ID 使用 UID。这是您的查询对您更有意义

【讨论】:

以上是关于如何通过 Firebase SDK 访问 Firestore 中的虚拟文档?的主要内容,如果未能解决你的问题,请参考以下文章

如果超时或无法访问服务器,Fire base 不会调用 onCancelled

如何修复:“@angular/fire”'没有导出成员 'AngularFireModule'.ts(2305) ionic、firebase、angular

如何在 Fire Base 中使用完成处理程序

如何在没有 Firebase SDK(即通过 REST)的情况下生成 FCM 注册令牌?

如何清除 Firebase 存储?

Firebase 存储上传图像不适用于亚马逊火灾(型号:Fire 7)