Firestore服务器时间戳查询



考虑到多个客户端将写入集合,我想知道给定集合中的2个或多个文档的Firestore ServerTimestamp是否可能完全相同。我之所以这么问,是因为Firestore没有为创建的文档提供自动递增的序列号,我们必须依靠ServerTimestamp来假设串行写入。我的用例要求对文档进行编号,或者至少具有";线性写入";模型我的应用程序是基于移动和网络的

(还有其他方法可以获得增量,例如使用FieldValue.Increment()方法的Firebase Cloud Function,我已经在做了,但这又增加了一个复杂度和延迟级别(

假设在给定集合中创建的每个文档都有一个唯一的时间戳,并且不会发生冲突,这安全吗?Firestore是对集合的写入进行排队,还是并行执行写入?

提前谢谢。

假设在给定集合中创建的每个文档都有一个唯一的时间戳,并且不会发生冲突,这样安全吗?

不,这样认为是不安全的。但也极不可能发生冲突,这取决于写入的实际发生方式。如果您需要一个有保证的顺序,请在另一个字段中向文档添加另一段随机数据,并使用其排序顺序以确定性的方式打破任何联系。对于您的用例,您必须自己决定这是否值得。

Firestore是对集合的写入进行排队,还是并行执行写入?

您应该考虑所有写入都是并行的。没有保证写入的顺序,因为这根本不能很好地扩展。

最新更新