如果用户A处理100个文档更新,这100个更新是否保证同时到达侦听用户B?或者,它们是否有可能在几秒钟内源源不断地涌入?
我猜是后者,但如果所有的更新都在一起,我会很高兴的。
(在消防局的上下文中询问,但也会对RTDB的行为感到好奇)
发布于 2018-04-21 01:23:37
事务结果以原子方式提交。没有中间状态,任何客户端都可以从单个查询的结果中观察部分事务更新。
我鼓励你不要随着时间的推移,从“块”或“流”的角度来思考问题。这并不是对正在发生的事情的准确描述或模型。相反,您应该考虑事务提供的担保,与客户端对更新文档的视图有关。换句话说,实际的实现并不重要,只是保证。
当客户端执行查询时,该查询可能会产生一些文档。它将产生的文档可能会根据查询的不同而有所不同。但是,无论哪个文档返回,查询快照都将与以前完成的任何事务保持一致。永远不会出现查询快照包含某些事务更新的情况,但不包含其他更新。请记住,当在服务器上执行查询时,客户端不一定要从事务的所有文档中得到更新,只需要更新与其查询匹配的文档。这是你的保证。
发布于 2018-04-20 20:55:12
对于Firestore事务,在事务结束时执行所有写操作。这是在任何失败或需要重新运行的情况下,因为并发写入数据库。
为了回答你的问题,我相信所有的数据都是一次更新的,而不是在一段时间内流进来的。
事务和批处理的文档在事务部分下面回答这个问题:https://firebase.google.com/docs/firestore/manage-data/transactions
https://stackoverflow.com/questions/49947073
复制相似问题