2023-07-09 from Firestoreのデータを集計したい
Firestoreへのスクリプトからのアクセスを許可するために、以下のルールを更新したいのですが。どうすればよいですか? …
- 現在のFirestoreルール
allow read, write: if request.auth != null && request.auth.uid == userId;
では、認証されたユーザーにアクセスを制限し、認証されたユーザーのID(request.auth.uid)がドキュメントパスのユーザーID(userId)と一致するかどうかをチェックします。- これにより、ユーザは自分のデータのみにアクセスできるようになります。
- しかし、Firebase Admin SDKを使用している場合、request.authオブジェクトはnullになります。
- Admin SDK は認証にユーザーアカウントではなく、サービスアカウントを使用します。
- このため、サーバー側のスクリプトは現在のルールではデータにアクセスできません。
- サービスアカウントからのリクエストかどうかを調べるには、 request.auth.token.firebase.sign_in_provider をチェックします。このフィールドが “null” なら、リクエストがサービスアカウントで認証されたことを意味します:
|| request.auth.token.firebase.sign_in_provider == "null"