我正在尝试在Google Cloud任务队列中从firebase函数创建任务,该函数在创建firebase实时数据库中的条目时调用。但是,当函数应该创建任务时,它会抛出以下错误:
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)相关代码如下:
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字段的信息。
这里我漏掉了什么?
发布于 2021-11-02 02:47:34
我正在张贴一个答案,因为这将不会很好地格式为评论。
是否有修改任务键名称的原因:
const taskRequest = {parent: queuePath};
taskRequest["task-" + scheduleSendMillis.toString()] = task;而不是这样做:
const taskRequest = {parent: parent, task: task};我相信这是与Task.payload_type相关的错误的来源
https://stackoverflow.com/questions/69804394
复制相似问题