Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud firestore Firestore服务器时间戳查询_Google Cloud Firestore - Fatal编程技术网

Google cloud firestore Firestore服务器时间戳查询

Google cloud firestore Firestore服务器时间戳查询,google-cloud-firestore,Google Cloud Firestore,考虑到多个客户端将向集合写入数据,我想知道对于给定集合中的2个或更多文档,Firestore ServerTimestamp是否可能完全相同。我这样问是因为Firestore没有为创建的文档提供自动递增的序列号,我们必须依赖ServerTimestamp来假设串行写入。我的用例要求对文档进行编号,或者至少具有“线性写入”模型的外观。我的应用程序是基于移动和网络的 (还有其他方法可以获得增量数字,例如使用FieldValue.Increment()方法的Firebase Cloud函数,我已经在这

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

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

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

提前谢谢

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

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

Firestore是将集合的写入排队,还是并行执行写入


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

这回答了我的问题,谢谢。虽然我不确定是否有另一个具有随机数据的字段,但对该字段上的集合进行排序将解决我的问题。现在,我想我将使用我所拥有的——云函数端的递增逻辑。事实上,我正在按照你的建议做。文档中有一个字段由云函数递增。谢谢你的快速回复。