web-dev-qa-db-ja.com

サービスアカウントからFirebaseデータベースへのプロジェクト間アクセス

請求が有効になっていないFirebaseプロジェクトがあります。別の課金対応プロジェクトに属するVM)を使用してデータベースのバックアップを作成したい。バックアップスクリプトは次のように単純です。

.npm/bin/firebase --project $PROJECT_ID database:get /

新しく作成されたサービスアカウントは、このスクリプトを実行しているVM(GCE経由)に割り当てられます。このアカウントがプロジェクト$PROJECT_IDにアクセスできない場合、明らかにこれは失敗します。

Error: Authorization failed. This account is missing the following required permissions on project $PROJECT_ID:

firebase.projects.get
firebasedatabase.instances.get

ただし、これらの特定のアクセス許可をサービスアカウントに付与したり、そのプロジェクトに「所有者」の役割を割り当てたりしても、プロジェクトはそれほど改善されません。代わりに:

Error: HTTP Error: 404, The specified project was not found.

--debugで実行すると、具体的にはGET https://admin.firebase.com/v1/projects/$PROJECT_IDが404を返すことがわかります。

プロジェクトが存在します。これは、ワークステーションで自分の(サービス以外の)アカウントでまったく同じコマンドを実行して確認します。また、VMでgcloud auth listを実行して、アカウントが正しいことを確認しました。プロジェクトは、同じVMのgcloud projects list出力にも表示されます。

サービスアカウントをプロジェクト間で機能させ、Firebaseデータベースにアクセスする方法はありますか?

8
J. Williams

enter image description here

Cliで以下のコマンドを実行します:firebase use --add

私はこの解決策を見ました: https://firebase.google.com/docs/hosting/?authuser=

1

同様の問題がありました、

他の誰かが私のチームのFirebaseアプリを作成しました。私には、所有者の権限がありました。

これは私にとってはうまくいきました、コマンドを試してください:firebase use --add

解決策に私を導いたコメントのためのPacoZevallosへの小道具。

私はこの解決策を見ました: https://stackoverflow.com/a/45263918/5283424

追加のコマンドとトラブルシューティングについては、そのソリューションを確認してください。

0
Michael Dimmitt