2017-10-06 149 views
2

云公司的FireStore Android的示例应用程序具有数据库结构如下图所示:云公司的FireStore数据库结构

enter image description here

现在考虑其中的第一家餐厅有非常多的收视率的情况(这里评级是以及第一家餐厅ID中的其他文档),我只想显示所有餐厅的基本信息,如名称和城市。

,如下图所示我将通过创建一个参考实现这一点:

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

我有以下有关此问题:

  • 这是做的,因为我得到一个文件的快照的正确方法还包括我现在不需要的收视率收藏,因为它可以降低加载速度?
  • 我应该像Firebase实时数据库那样更改Firestore数据库结构并将其平坦化吗?

回答

4

Firestore与RTDB的主要区别/优点之一是,如果请求快照,文档的子集合将不会被检索。

这意味着,只有基本的细节,而不是收视率会被加载,当你调用mRestaurantRef.get()

您以后可以用一个单独的查询检索餐厅的收视率(或分级的数量有限)。

您也可以拨打mFirestore.collection("restaurants").get()(必要时使用where/orderBy/limit)来获取所有餐厅的文档快照列表。同样,只有基础数据才会被检索出来,与任何评级无关。

+0

谢谢。我不知道:) –