Loading [MathJax]/extensions/tex2jax.js

2020-03-31

PythonでFirebaseを用いる際のサービスアカウント情報の設定

最近、ボチボチとGAEとかFirebaseとか、いわゆるGCP周りのサービスを触っているのですが、それらを利用するための認証系のところがいまいち理解できてなくて、急にプログラムが認証できなくなったりして、、、ということがあったのでメモ書きです。

エラーの例
以下のようなエラーがでた場合、認証系のところでトラブってることになります
google.auth.exceptions.DefaultCredentialsError: Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or
explicitly create credential and re-run the application.

サービスアカウントの設定方法
GCPの管理画面でサービスアカウントキーを作成してダウンロード(jsonファイル)しておきます。認証設定しないといけない箇所は
  • 環境変数の設定
  • CREDENTIALS情報の読み込み
の2つです。実は、前者の環境変数を設定しておけばコード内に認証情報を明示的に指定する必要はありません。環境変数の設定はシェルで設定するPythonかプログラムで明示的に設定するかのいずれかですが、認証ファイルの情報をコード内で明示的に書かないほうがいいので、シェルで環境変数を設定するのがベターです。Pythonの場合は下記の通りです。

import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
import os
#環境変数
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = './xxxxx-credentials.json'
#credentialsの読み込み
cred = credentials.Certificate('xxxxx-credentials.json')
firebase_admin.initialize_app(cred)
db = firestore.Client()


0 件のコメント:

コメントを投稿