我遇到 Firebase 写入无序的问题。
我有一个将数据写入文档的函数。该对象会改变状态,然后调用该函数将状态写入 Firebase。
function saveStateToFirebase(currentState: any): void{
admin.firestore().doc(`id`).set(currentState);
}
//... application calls these functions with calculated objects called state
saveStateToFirebase(state0);
saveStateToFirebase(state1);
文档数据应设置为state1,但是,有时(我猜是由于赛车网络条件)文档数据有可能设置为state0。
如何解决较早写入覆盖较晚写入的问题? RxJS 有优雅的解决方案吗?我阅读了 Firestore 交易的文档,但不确定它是否适用于此处。因为我没有根据前一个字段同时更新数据库中的字段。我只关心我的软件的最新状态。
最佳答案
我宁愿发表评论,但不能。但是你可以有 2 个可观察量,一个用于数据流,另一个是数据库的锁定状态吗?
然后,写入函数中的combineLatest将在进行数据库操作之前查阅这两个资源。
关于node.js - 如何保证最新的写入不会被之前的写入覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50803158/