NISHIO Hirokazu[Translate]
Firestoreへのサービスアカウントからのアクセスを許可するには?
2023-07-09

nishioFirestoreへのスクリプトからのアクセスを許可するために、以下のルールを更新したいのですが。どうすればよいですか? ...
GPT-4nishio
現在の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"

"Engineer's way of creating knowledge" the English version of my book is now available on [Engineer's way of creating knowledge]

(C)NISHIO Hirokazu / Converted from [Scrapbox] at [Edit]