不更改名称的 Firebase 函数分组

Firebase functions grouping without name change

Firebase 支持代表建议我使用功能分组来更好地部署功能。但是,我注意到函数分组的函数名称发生了变化,例如。函数名称 Ferrari 更改为 cars-Ferrari。对于数据库、定期和身份验证触发器,我不介意更改名称,但对于已经在生产中使用的 HTTP 函数,我不能更改名称,原因有两个,一个是因为它已经部署,我不能'由于稳定性,我不更新其中一个构建,其次,我不希望组名对少数 HTTP 函数可见,因为我不希望轻松完成逆向工程。因此,我将拥有同一函数的两个副本,因为我在仪表板中观察到同一函数有两个具有分组和未分组名称的条目,我也不想这样。如果我不对 https 函数使用分组,那么部署会变得低效,我无法使用一个命令部署类似的函数,如果我使用分组,我会得到两个具有相同逻辑的函数。

那么有没有办法把http函数分组,不改函数名,我还是想把Ferarri函数部署成Ferarri,前面没有分组名有吗?

此外,我想知道是否存在 groupedName(cars-Ferrari) 和 ungroupedName(Ferrari) 功能数据库在同一路径下使用相同的触发器,例如。 onWrite 使函数 运行 两次 如果分组和未分组的名称都显示在 firebase 控制台仪表板中,或者只是最新部署的函数 运行s?

如果您对函数进行分组,它们将以前缀作为组名,并在其后添加 -。没有那个你就不能把它们分组。

由于这种情况,我总是建议使用 Firebase 托管来重写特定函数的特定路由,以防您需要像此处那样更改名称。

这是我们如何在您的一个项目中执行此操作的示例:

"hosting": {
    "public": "build",
    "ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
    "rewrites": [
      {
        "source": "/api/v1/visimatch",
        "function": "https-apiV1VisimatchOnRequest"
      },
      {
        "source": "/api/v1/container_tasks",
        "function": "https-apiV1ContainerTasksOnRequest"
      },
      {
        "source": "/api/v1/container_tasks/:uid*",
        "function": "https-apiV1ContainerTasksOnRequest"
      },
      {
        "source": "**",
        "destination": "/index.html"
      }
    ],

正如您所注意到的,我们在这里使用了分组函数。

Here 您可以了解我们如何组织云功能的更多信息。