实时数据库`onValueWritten`事件在模拟器中不触发

问题描述 投票:0回答:1

我在

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 });
    });

当我启动模拟器时,我在控制台中收到以下消息: console warning message

当在默认模拟器数据库中创建新值时,函数

onDbUpdated
不会触发。

  1. 功能区域定义在数据库区域之外是什么意思?
  2. 这是否意味着数据库区域应该是“europe-west1”,就像函数一样?
  3. 如果是这样,我应该如何指定模拟器数据库区域?
google-cloud-platform firebase-realtime-database firebase-tools
1个回答
0
投票

文档

中所述

实时数据库实例位置与功能位置之间的距离可能会产生显着的网络延迟。此外,区域之间的不匹配也可能导致部署失败。为了避免这些情况,请指定函数位置,使其与数据库实例位置匹配。

默认情况下,函数按照

文档
us-central1区域运行。请注意,这可能与事件源的区域不同,例如实时数据库。

因此,根据云函数文档,如果由实时数据库触发或使用实时数据库,建议部署云函数的区域始终是

US-Central1

为非美国用户提供更好体验的另一种方法可能是尝试在欧盟区为所有非数据库相关作业实现一个功能,该功能稍后连接到云功能,该功能将执行与数据库相关的所有作业。数据库。

还可以看看@Dharmaraj 建议的另一种替代方法,在这个 Stackoverflow Link 中指定实例和路径。查看文档中的指定实例和路径部分。

© www.soinside.com 2019 - 2024. All rights reserved.