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