Firestore 服务器时间戳查询

时间:2020-12-22 07:20:50

标签: google-cloud-firestore

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

<块引用>

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

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

<块引用>

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

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