Firestore:使用引用读取数据会增加请求数量吗?

时间:2018-02-14 13:02:38

标签: google-cloud-firestore

当读取firestore上的文档时,firestore不会提供引用数据(如果有)。所以目前我要求firestore从引用路径获取数据。这会增加对服务器的请求数量,最终会降低性能并提高定价吗?存储引用如何在从服务器请求数据方面有用?

1 个答案:

答案 0 :(得分:1)

读取具有引用的文档计为该文档的读取。读取引用的文档计数作为另一个文档的读取。所以总共是两次读取。

此处没有隐藏的成本膨胀:如果服务器自动遵循引用,则还必须读取这两个文档。

如果您希望尽量减少所阅读的文档数量,可以考虑将所需的最少数据从引用的文档添加到包含该引用的文档中。例如,如果您有聊天应用程序:

  • 您可能希望在邮件本身中包含发布邮件的每个用户的显示名称,这样您就不必阅读用户的个人资料文档。
  • 如果您这样做,您将不得不考虑如果用户更新其显示名称该怎么做。有关选项,请参阅我的回答:How to write denormalized data in Firebase
  • 用户数量可能小于聊天消息的数量(在特定时间范围内相当有限),使链接文档的读取次数低于消息数量。
  • 通过复制数据,可能会增加带宽使用量,尤其是当用户数量远低于消息数量时。

归结起来的是:你可能过早地进行优化,但即使不是:也没有一种适合所有人的方法。 NoSQL数据建模取决于您的应用程序的用例,而Firestore也不例外。