gpt4 book ai didi

firebase - 服务器(云功能)在事务中读取 Firestore 文档时是否会被锁定?

转载 作者:行者123 更新时间:2023-12-02 17:22:07 25 4
gpt4 key购买 nike

我知道 Firestore 使用服务器(云功能)中的事务锁,如以下视频所述:https://www.youtube.com/watch?v=dOVSr0OsAoU

该视频详细解释了事务在客户端中如何工作(并且没有使用锁),但对于服务器事务来说效果不佳。

以下哪一项是正确的(关于服务器事务)?:

1) 文档被服务器事务中的get锁定,因此其他服务器事务在第一个事务完成之前无法获取它。

2) 文档被服务器事务中的get锁定,但仅限于写入,以便其他服务器事务可以获取它,但在第一个事务完成之前不能修改它。

3) 文档不会被服务器事务中的 get 锁定,只能写入。

编辑:我需要权威来源(Firebase 团队中某人的文档或视频或博客中的一些引用资料)。

最佳答案

服务器端事务通常像客户端库一样工作,但不是该视频中提到的并发模型技术,而是以传统的锁定数据方式工作。因此,即使您在单个文档或查询上使用事务,这些文档也将被锁定,直到事务完成为止。

回答您的问题,因为来自云功能的事务是在内部发生的(可能需要几毫秒),所以文档在这段时间内被锁定。这意味着这些文件不能被任何其他交易获取或更改。

1) A document is locked by gets in a server Transaction, so that other server Transactions cannot get it before the first Transaction is finished.

正确。

2) A document is locked by gets in a server Transaction, but only for writes, so that other server Transactions can get it but not modify it before the first transaction is finished.

其他事务获取锁定文档是没有意义的。既然无法更改,为什么要尝试获取这样的文档呢?此外,在事务完成时,锁定的文档可能具有不同的值。在事务开始和完成之间,文档中的某些属性会发生更改。

3) A document is NOT locked by gets in a server Transaction, only writes.

云函数运行交易后文档被锁定,交易完成后锁定被释放。

编辑:

It does make sense for another transaction to get a locked document. It cannot be changed, but if it can be read

我指的是严格意义上的写作。无论文档是否锁定,所有文档都可以读取。

if you just want to read the value

如果您只想读取值,则无需担心。在读取时,文档上没有锁。

Maybe you need to read some value to make a decision regarding changing another document, or even just showing some info to the user.

它将完美地工作。

Also, depending on the transaction, you don't care if the document changes within the next second. For example, if the user wants to know the money amount in his bank account, you can show a value from one second before, no problem.

是的,没错。读取操作没有任何限制,就您的示例而言,是的,没问题。这也在我的一个项目中发挥作用。

Could you please point me to their sources?

有许多资源可以解释传统的锁定数据方式的工作原理。正如托德·克佩尔曼(Todd Kerpelman)在喜欢的视频中证实的那样,服务器端交易就是这样工作的。此锁定的目的是服务和保护共享资源(文档)。

I really need to be absolutely sure of that, so I need the sources, or else someone from the Firebase team confirming them.

我们还希望 Firebase 团队的人员能够花时间查看此内容,但我不确定我是否理解您的担忧?您是否认为在交易进行时您将无权阅读文件?或者?

关于firebase - 服务器(云功能)在事务中读取 Firestore 文档时是否会被锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56452110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com