解析 Firestore 引用

Posted

技术标签:

【中文标题】解析 Firestore 引用【英文标题】:Resolve Firestore References 【发布时间】:2018-07-05 00:36:43 【问题描述】:

Firebase Firestore 在定义文档字段时具有reference 类型,允许我们通过其“文档路径”添加对另一个文档的引用。

例如,我有一个文档animals/3OYc0QTbGOTRkhXeiW0t,其中一个字段name 的值是Zebra。我在文档zoo/xmo5wX0MLUEbfFJHvKq6 的数组animals 中引用它。我基本上是通过将动物引用到animals 集合中的相应动物文档来存储动物园中的动物列表。

现在,如果我从 zoo 集合中查询特定文档,是否会自动解析对动物的引用?我会在查询结果中获取动物名称吗?如果没有,我怎样才能做到这一点?

【问题讨论】:

见***.com/a/47107572、***.com/a/46674073、***.com/q/48128827 【参考方案1】:

Firestore 中的所有文档查询都是浅层的,这意味着对于每个请求的文档,您只能获得一个文档。

文档中的引用不会自动获取 - 您必须使用文档中的引用进行后续查询才能自行获取其他文档。

子集合中的文档也是如此——它们需要单独的查询。

【讨论】:

是否可以将动物园的参考资料与动物一起存储?这样您就可以查询动物园中的所有动物(通过参考)。这当然只有在动物是独一无二的时候才有意义(例如斑马马蒂) 您不能在同一个数据库中存储您想要对任何文档的任何引用。要了解您可以使用引用做什么,请阅读以下内容:***.com/questions/46568850/… 谢谢@DougStevenson,请问您是否知道firebase 是否添加了自动解析子查询的功能。因为firestore不会再像那样使用它了。我宁愿坚持使用 SQL Join 表。

以上是关于解析 Firestore 引用的主要内容,如果未能解决你的问题,请参考以下文章

从 Firestore 中检索文档引用的值

使用python在Firestore中运行GeoPoint

在 Firestore 中自动创建集合

如何从firestore的路径中获取布尔值

如何为 Firestore 创建大量示例数据?

Cloud Firestore 事务的限制