【问题标题】:How to force test a Firestore parallel Transaction?如何强制测试 Firestore 并行事务?
【发布时间】:2021-11-10 23:48:29
【问题描述】:

事务用于原子更改以及两个客户端可能同时更改相同数据的情况。

我想在开发环境中测试当有来自多个客户端请求的并行事务运行时,我的事务是否具有其预期行为。它仅在我的 Cloud Functions 中运行。我不能让任何这种性质的不良行为在 prod 环境中发生,所以我想检查 dev 是否​​一切正常,当它发生时,即使不太可能。

是否可以强制这个测试用例?

使用 JS/TS。

【问题讨论】:

标签: firebase google-cloud-firestore google-cloud-functions


【解决方案1】:

在并发编辑的情况下,Cloud Firestore 会再次运行整个事务。例如,如果一个事务读取文档,而另一个客户端修改了这些文档中的任何一个,则 Cloud Firestore 会重试该事务。此功能可确保事务在最新且一致的数据上运行。请参阅有关updating data with transactions 的文档。

您可以查看同时讨论并发读写的post。另一个link 也有一个关于如何使用 Node.js 创建和运行事务的示例。

最后,您可以考虑创建两个 FirebaseApp 实例,并在两者中运行相同的事务,然后在它们运行的​​单个进程中在两者之间进行同步。或者,使用支持并行测试的测试工具,例如 Node TAP

【讨论】:

    猜你喜欢
    • 2017-10-20
    • 2016-05-02
    • 1970-01-01
    • 2014-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-25
    相关资源
    最近更新 更多