我在
onDbUpdated
函数中有以下代码:
//source: https://firebase.google.com/docs/functions/database-events?gen=2nd
import {onValueWritten} from "firebase-functions/v2/database";
export const onDbUpdated = onValueWritten(
{
ref: "/scoobs",
},
(event) => {
console.log({ event });
});
当在默认模拟器数据库中创建新值时,函数
onDbUpdated
不会触发。
如文档
中所述实时数据库实例位置与功能位置之间的距离可能会产生显着的网络延迟。此外,区域之间的不匹配也可能导致部署失败。为了避免这些情况,请指定函数位置,使其与数据库实例位置匹配。
默认情况下,函数按照
文档在
us-central1
区域运行。请注意,这可能与事件源的区域不同,例如实时数据库。
因此,根据云函数文档,如果由实时数据库触发或使用实时数据库,建议部署云函数的区域始终是
US-Central1
。
为非美国用户提供更好体验的另一种方法可能是尝试在欧盟区为所有非数据库相关作业实现一个功能,该功能稍后连接到云功能,该功能将执行与数据库相关的所有作业。数据库。
还可以看看@Dharmaraj 建议的另一种替代方法,在这个 Stackoverflow Link 中指定实例和路径。查看文档中的指定实例和路径部分。