3
1

More than 1 year has passed since last update.

【GCP】7 PERMISSION_DENIED: Missing or insufficient permissions

Last updated at Posted at 2021-02-08

CloudFunctions for Firebaseでローカルエミュレーターではfirestore へデータの登録ができるが、deployしてクラウドから実行すると下記のエラーが出ていた。

7 PERMISSION_DENIED: Missing or insufficient permissions

ここを参考にFirebase Admin SDKのserviceAccountKeyを設定する
https://firebase.google.com/docs/admin/setup?hl=ja

Firebaseコンソール → (左上の)設定 → サービスアカウント
から、

新しい秘密鍵の生成
xxx.json
を任意の場所へ配置する。

ファイル名
var admin = require("firebase-admin");
var serviceAccount = require("path/to/serviceAccountKey.json");
admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://[APPの名前].firebaseio.com"
});

これでdeploy後にクラウド側から関数実行をしてもエラーが出ず、正常にデータの登録ができた。

ちなみにこの時のfirestoreのルールはこれ。
※これはセキュリティがざるなので、あくまでも開発用に使用し、本番のプロダクトなどでは使わない方が良いです。

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1