当前位置: 首页 > 知识库问答 >
问题:

通过Google Cloud任务客户端部署Firebase函数时收到区域错误

赵智
2023-03-14

当我部署Firebase函数导入Google Cloud Tasks@Google Cloud/Tasks时,我收到一个区域错误。

为了证明这一点,我提供了成功和不成功部署的代码。

import * as functions from "firebase-functions";
import * as admin from "firebase-admin";

admin.initializeApp();

export const helloWorld = functions.region("europe-west3").https.onRequest((request, response) => {
  functions.logger.info("Hello logs!", {structuredData: true});
  response.send("Hello from Firebase!");
});

CloudTaskClientonDeletePost取消任务函数被添加到成功的代码中。

import * as functions from "firebase-functions";
import * as admin from "firebase-admin";
const {CloudTasksClient} = require("@google-cloud/tasks");

admin.initializeApp();
const tasksClient = new CloudTasksClient();

export const helloWorld = functions.region("europe-west3").https.onRequest((request, response) => {
  functions.logger.info("Hello logs!", {structuredData: true});
  response.send("Hello from Firebase!");
});

export const onDeletePostCancelTask = functions.region("europe-west3").database
    .ref("/one/{twoId}").onDelete(async (snapshot, context) => {
      const dogId = snapshot.key;
      const taskSnap = await snapshot.ref.parent?.parent?.child("three/" + twoId).get();
      const taskName = taskSnap?.val();
      console.log("Task name: ", taskName);
      return tasksClient.deleteTask({name: taskName});
    });
Error: There was an error deploying functions:
- Error Failed to create function helloWorld in region europe-west3
- Error Failed to create function onDeletePostCancelTask in region europe-west3

在Firebase Functions日志中,我发现了以下内容:

Provided module can't be loaded.
Did you list all required modules in the package.json dependencies?
Detailed stack trace: Error: Cannot find module '@google-cloud/tasks'
Require stack: 
- /workspace/lib/index.js 
...
  • 我正在按照如何安排云函数在未来使用云任务(构建一个消防文档TTL)运行中描述的安装过程进行操作。
  • 我的Firebase应用程序区域是欧洲西部3。
  • 我的谷歌云应用程序区域是欧洲西部。(然而,在开始配置云任务时,我创建了一个新的项目,使用了us-中心1区域,但是因为我的项目有一个实例,使用了欧洲-西部区域,所以我切换到了它。)
  • 当我省略。区域("欧洲-西部3")时,错误仍然存在,只是用us-中心1代替。
  • 我有两个package.json,第一个在.../第二个在.../函数/。外部的有@google-Cloud/任务依赖:
{
  "dependencies": {
    "@google-cloud/tasks": "^2.4.2",
    "firebase-admin": "^10.0.0",
    "firebase-functions": "^3.16.0"
  }
}

共有1个答案

公羊凌
2023-03-14

函数部署失败,因为它在包中找不到@google cloud/tasks。json在你的函数目录中,没有区域问题。如果函数中缺少依赖项,则无法将其部署到任何区域。

修复它并在你的函数/包中添加@google cloud/tasks依赖项。json,在函数目录中运行以下命令:

npm install @google-cloud/tasks

再次部署,应该会成功。

 类似资料:
  • 我已经使用firebase云函数一段时间了,今天在代码中修复了一个小错误,在尝试部署时出现了以下错误。我取消了该更改,并尝试使用上次提交的稳定更改再次部署,但仍然是相同的错误。有什么解决办法吗?PS:这是一个typescript项目,我用tsc编译它。

  • 我已经设置和快速服务器上运行Firebase云功能。现在,我试图使用CLI使用“Firebase部署-仅函数”将其部署到Firebase,但每次都失败,说有一个意外的令牌。我怀疑在index.js文件中使用异步箭头函数有问题,但我不确定,我也需要它们来完成我的项目。 这是索引。js文件: 以下是我在尝试运行firebase deploy(仅限函数)时遇到的错误: ==部署到“homunculus-

  • 我在过去多次部署Firebase功能。由于某些原因,最近(大约2-3天)我经常在部署时出错。我使用windows来释放代码。当我尝试在我的Linux系统和Mac系统中设置相同的项目时,部署工作正常。从Windows环境发布可能存在的问题。 以下是部署时遇到的问题。 ! 功能[付款(us-central1)]:部署错误。加载用户代码时函数失败。这可能是由于用户代码中的错误造成的。错误消息:错误:请检

  • 我的包裹。json就是这样。 我的index.js是 你能告诉我密码有什么问题吗?提前谢谢。

  • 我有一个WildFly集群,它应该将所有主题消息共享给不同的节点,并在一个节点离线时保存它们。< br >在这种情况下,我需要耐用的订阅服务器。 我注意到如果我使用相同的clientID,系统会进行负载平衡。如果我将clientID或认购名称更改为唯一值,它就可以工作。 那么什么时候使用唯一的clientID,什么时候使用subscriptionName 我的答案是,每个节点的唯一clientID

  • 我正在构建一个有角度的Firebase web应用程序,由于一些复杂的查询,我开始从Firebase中寻找云函数。 我的项目看起来像: 我遵循了经典教程:https://firebase.google.com/docs/functions/get-started 但是使用Firebase部署仅功能时的问题: 任何想法?我做错什么了吗? 版本:“firebase”:“^5.0.4”firebase函