0

クラウド機能を使用して 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

一貫した結果で何度かテストしましたが、これについて心配する必要がありますが、期待どおりに機能しているようです

4

2 に答える 2