クラウド機能を使用して Google クラウド タスクを削除しようとしています。これは、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... は私が削除しようとしている taskID ですので、私の質問は、PERMISSION_DENIED エラーが発生しているこのタスクを削除するのに十分な情報を Google タスクに提供していないということですか? また、さらに情報がある場合は、対応するフィールド名を提供する必要があります。Google ドキュメントで見たものから、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}`);
});
それはとてもうまくいきます
5 NOT_FOUND: Requested entity was not found
一貫した結果で何度かテストしましたが、これについて心配する必要がありますが、期待どおりに機能しているようです