Cloud Firestore数据库结构

时间:2017-10-06 07:32:25

标签: android firebase google-cloud-firestore

Cloud Firestore的Android示例应用程序具有如下所示的数据库结构:

enter image description here

现在考虑第一家餐厅有很多评分的情况(这里的评分是与第一家餐厅的其他文件一起收集的ID)我只是想展示所有餐厅的基本细节喜欢名字和城市。

我会通过创建如下所示的引用来实现此目的:

mRestaurantRef = mFirestore.collection("restaurants").document(restaurantId);

我对此有以下问题:

  • 这是正确的方法,因为我正在获取一份文档快照,其中还包括我现在不需要的评级集合,因为它可以降低加载速度吗?
  • 我应该像在firebase实时数据库中那样更改firestore数据库结构并将其展平吗?

1 个答案:

答案 0 :(得分:4)

Firestore优于RTDB的一个主要区别/优势是,如果您请求快照,则无法检索文档的子集合。

这意味着当您拨打mRestaurantRef.get()

时,只会加载基本详情而不会加载评分

您可以随后通过单独的查询检索餐厅的评分(或有限数量的评分)。

您还可以调用mFirestore.collection("restaurants").get()(如果需要,使用where / orderBy / limit)来获取所有餐馆的文档快照列表。同样,只会检索基本数据,而与任何评级无关。