首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Firebase函数创建谷歌云任务抛出错误:3 INVALID_ARGUMENT: Task.payload_type is not set

从Firebase函数创建谷歌云任务抛出错误:3 INVALID_ARGUMENT: Task.payload_type is not set
EN

Stack Overflow用户
提问于 2021-11-02 01:16:21
回答 1查看 118关注 0票数 0

我正在尝试在Google Cloud任务队列中从firebase函数创建任务,该函数在创建firebase实时数据库中的条目时调用。但是,当函数应该创建任务时,它会抛出以下错误:

代码语言:javascript
运行
复制
Error: 3 INVALID_ARGUMENT: Task.payload_type is not set.
at Object.callErrorFromStatus (D:\programming\AndroidStudioProjects\TWILY\firebaseBackend\functions\node_modules\@grpc\grpc-js\build\src\call.js:31:26)
at Object.onReceiveStatus (D:\programming\AndroidStudioProjects\TWILY\firebaseBackend\functions\node_modules\@grpc\grpc-js\build\src\client.js:180:52)
at Object.onReceiveStatus (D:\programming\AndroidStudioProjects\TWILY\firebaseBackend\functions\node_modules\@grpc\grpc-js\build\src\client-interceptors.js:336:141)
at Object.onReceiveStatus (D:\programming\AndroidStudioProjects\TWILY\firebaseBackend\functions\node_modules\@grpc\grpc-js\build\src\client-interceptors.js:299:181)
at D:\programming\AndroidStudioProjects\TWILY\firebaseBackend\functions\node_modules\@grpc\grpc-js\build\src\call-stream.js:160:78
at processTicksAndRejections (internal/process/task_queues.js:77:11)

相关代码如下:

代码语言:javascript
运行
复制
const project = JSON.parse(process.env.FIREBASE_CONFIG).projectId;
const location = "europe-west1";
const queue = "message-queue";

const tasksClient = new CloudTasksClient();
const queuePath = tasksClient.queuePath(project, location, queue);
console.log(queuePath);

const url = `https://${location}-${project}.cloudfunctions.net/sendMessageCallback`;

const task = {
  httpRequest: {
    httpMethod: "POST",
    url: url,
    body: Buffer.from("Hello there").toString("base64"),
    headers: {
      "Content-Type": "text/plain",
    },
  },
  scheduleTime: {
    seconds: scheduleSendSeconds,
  },
};

const taskRequest = {parent: queuePath};
taskRequest["task-" + scheduleSendMillis.toString()] = task;
console.log(taskRequest);

return tasksClient.createTask(taskRequest);

我还没有找到任何关于假定必填的Task.payload_type字段的信息。

这里我漏掉了什么?

EN

回答 1

Stack Overflow用户

发布于 2021-11-02 02:47:34

我正在张贴一个答案,因为这将不会很好地格式为评论。

是否有修改任务键名称的原因:

代码语言:javascript
运行
复制
const taskRequest = {parent: queuePath};
taskRequest["task-" + scheduleSendMillis.toString()] = task;

而不是这样做:

代码语言:javascript
运行
复制
const taskRequest = {parent: parent, task: task};

我相信这是与Task.payload_type相关的错误的来源

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69804394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档