【发布时间】:2020-07-05 10:38:16
【问题描述】:
我有一个由 firebase 数据驱动的日历。当用户进行编辑时,通过移动或调整任务大小,它会快速回到原来的位置,然后数据库会更新客户端,新的数据会显示在页面上。
这是一个简单的图表来解释:
A - User moves task in calendar UI
↓
B - UI flicks back to its previous position
↓
C - Data is sent to Cloud Firestore
↓
D - Updated data is returned to the client via a realtime listener
↓
E - UI is updated
A 点和 E 点之间的延迟可以小到 50 毫秒,但时间可以长达 1000 毫秒。
在用户进行更改后,有什么方法可以在用户浏览器中存储临时数据,以在更新 firestore 中的数据时反映更新?当实时监听器触发时,它将重置临时数据并且所有数据都是最新的。
这是我当前用于监听更改并更新 projects 变量的代码:
const [projects, loadingProjects, errorProjects] = useCollection(
organisationID && firebase.firestore().collection('organisations').doc(organisationID).collection("projects"),
{
snapshotListenOptions: { includeMetadataChanges: true },
}
);
我将如何在 React 中实现这样的系统?
【问题讨论】:
标签: reactjs firebase google-cloud-firestore react-state-management react-state