我正在尝试通过云功能删除 Google 云任务。这是我认为我需要基于谷歌文档的代码。
export const deleteHearingReminder = functions.firestore
.document('Hearings/{HearingID}/Accepted/{AcceptedId}')
.onUpdate(async change => {
const dataBefore = change.before.data() as data;
const dataAfter = change.before.data() as data;
if (dataBefore === dataAfter) {
console.log("Text didn't change");
return null;
}
const taskID ={ name : dataAfter.taskId };
const client = new CloudTasksClient();
const [response] = await client.deleteTask(taskID);
console.log(`delete task ${response.name}`);
return Promise.resolve({ task: response.name });
});
当这个函数被调用时,我得到一个错误
Error: 7 PERMISSION_DENIED: Permission denied on resource project 6cDNgaqLniz6kHGonePh.
其中 6cDN... 是我要删除的任务 ID,所以我的问题是我没有为谷歌任务提供足够的信息来删除我收到 PERMISSION_DENIED 错误的任务吗?此外,如果有更多信息,我应该提供相应的字段名称,因为从我在谷歌文档中看到的 deleteTask 只取“名称”。感谢您提出任何建议。
我真的很感谢所有的帮助,所以现在我的代码看起来像这样。
const request = {
name: `projects/${project}/locations/${location}/queues/${default_queue}/tasks/${dataAfter.taskId}`,
};
taskClient.deleteTask(request).catch(error => {
console.error(`There was an error ${error}`);
});
它工作得很好,谢谢你,我仍然在这个 catch 方法中遇到错误
5 NOT_FOUND: Requested entity was not found
如果我担心这一点,我已经对其进行了多次测试,结果一致,它似乎确实按预期工作