首页 > 解决方案 > 多线程 Firebase 功能

问题描述

所以我正在开发一个 Firebase 函数,它接受来自用户的请求并更新这些用户正在收听的分支下的几个节点。

我的问题是,如果该函数同时接收到两个客户端请求,则会触发两个函数同时执行和更新数据。

我知道这通常是通过事务解决的,但是我的更新是在各个节点上完成的,而不仅仅是一个值(即计数器)。

在传统的多线程编程中,这个问题是通过锁定代码的执行来解决的,因此它只能由一个线程执行,当当前线程完成时,下一个线程会继续执行。

这是 Firebase Functions 中的一个选项吗?如果是这样,怎么办?

标签: multithreadingtypescriptfirebasegoogle-cloud-functions

解决方案


目前在任何环境中的 Cloud Functions 中都没有线程,包括 node 和 python。您不应该依赖 Cloud Function 中的进程级别锁定 - 使用数据库事务来确保更新是原子的和一致的。您的每个函数调用都将彼此完全隔离。


推荐阅读