【问题标题】:vue js firebase data refresh on document addvue js firebase数据刷新文档添加
【发布时间】:2021-12-16 15:19:50
【问题描述】:
正如标题所示,我只是想知道在向 Firestore 添加新文档后刷新客户端数据的好/最佳做法是什么。所以基本上为了总结功能,假设我有一个表格,表格下面是所有文档。什么是刷新数据的好方法,所以我不会强调火力。添加新文档是我正在开发的应用程序的重要组成部分,因此它可能会被大量使用。我想知道如果文档已成功添加,我应该在客户端添加它,还是应该再次发送所有文档的调用或其他什么。我熟悉快照选项,我只是不确定这是否是一个好习惯。提前谢谢你。
【问题讨论】:
标签:
firebase
vue.js
google-cloud-firestore
【解决方案1】:
理想的解决方案是使用快照。让我们看一下他们documentation的摘要。
您应用中的本地写入会立即调用快照侦听器。这是因为一个名为latency compensation 的重要功能。 当您执行写入时,您的听众将
在数据发送到后端之前通知新数据。
检索到的文档有一个 metadata.hasPendingWrites 属性
指示文档是否有尚未进行的本地更改
尚未写入后端。您可以使用此属性来确定
快照侦听器接收到的事件源。
所以你看,你直接将文档添加到客户端与使用firestore snapshot是一样的,因为在本地写入的情况下,数据是直接由侦听器接收的,不会先到服务器再到服务器接收数据。
此外,您甚至可以对limit 和sort 数据编写查询,快照侦听器将自动处理限制和排序数据的逻辑。不过,您甚至可以在使用get() 在客户端添加文档后查询数据,但这只是绕圈子。
Snapshots 专为 bi-directional 更新而设计,我强烈建议您改用它们。
参考