Firebaseの公式ドキュメントを見ていたら、こんな記事を見つけた。
試してみたので、そのときの備忘録。
Functionのソースはこんな感じ
// index.ts import * as functions from "firebase-functions"; export onDeleteUser = functions .runWith({ timeoutSeconds: 540, memory: "2GB" }) .firestore.document("users/{uid}") .onDelete(async (snapshot, context) => { const firebase_tools = require("firebase-tools"); // サブディレクトリを含めて一括削除 await firebase_tools.firestore.delete(snapshot.ref.path, { project: process.env.GCLOUD_PROJECT, recursive: true, yes: true, token: functions.config().fb.token }); });
デプロイする前に、トークンの取得と設定
# トークンを取得するために認証 $ firebase login:ci # 取得したトークンをconfigに設定 # config名は"fb.token"なので、任意の変更可 firebase functions:config:set fb.token="YOUR_TOKEN_HERE"
これを設定しないと、上記のtoken: functions.config().fb.token
でトークンを取得できない。。
また、デプロイ時に反映されるので、デプロイ前に設定しないといけない。
以上!!