我应该如何在Firebase的云端函数中复制Firebase队列数据属性?

Firebase队列使用以下属性来跟踪处理:

_state _state_changed _owner _progress _error_details _id

我正在将一些Firebase队列代码迁移到Firebase的Cloud Functions。 我将如何获得_owner属性的等效数据属性?

另外,考虑到这个属性主要是为了缓解并发性问题,Cloud Functions是否已经以另一种方式解决了这个问题,使我的实现不必要?

这两个系统之间的语义有点不同。 Firebase Queue中的_owner属性的主要原因是,一旦操作租约到期,它不能终止用户代码,因此我们必须通过检查来防止处理函数的任何副作用。 Cloud Functions控制着执行环境,如果需要的话可以杀死用户代码,所以我们可以假设它是否在写,那么它仍然有租约。

为了模拟这种行为,可以在每个Cloud Function执行开始时生成一个v4的UUID,把它写回到数据库的某个地方,这样就可以超时租约(由一个事务保护,所以你不需要其他所有者),然后每次在函数中写回到数据库时,将它们与当前UUID和交易时间进行比较。

_state_state_changed属性应该足以解决Google Cloud Functions for Firebase中的并发问题(特别是竞态条件)(我仍在调查Google如何在内部解决此问题)。

然而,拥有“ _owner财产在多平台任务工作者的情况下也会有所帮助。