Firebase Admin SDK(firebase-admin)のインストールと Cloud Firestore への接続確認
【概要】
Python から Google Firebase の Cloud Firestore を操作するための準備を行う。Firebase Admin SDK(firebase-admin パッケージ)をインストールし、サービスアカウントの秘密鍵を使って Cloud Firestore に接続し、コレクションのデータを取得できることを確認する。
【目次】
【関連する外部ページ】
- Cloud Firestore にデータを追加する(公式ドキュメント):https://firebase.google.com/docs/firestore/manage-data/add-data?hl=ja
【サイト内の関連ページ】
firebase-admin パッケージのインストール
- 管理者権限でコマンドプロンプトを起動する
(手順:Windowsキーまたはスタートメニュー →
cmdと入力 → 右クリック → 「管理者として実行」)。 - firebase-admin のインストール
コマンドプロンプトで,次のコマンドを実行する。
firebase-adminは,サーバ側から Cloud Firestore へアクセスするための公式パッケージ(Firebase Admin SDK)である。pip install -U --no-user firebase-admin
秘密鍵の準備と Cloud Firestore への接続確認
- サービスアカウントの秘密鍵(JSON ファイル)を準備する
Firebase コンソールでプロジェクトを開き,秘密鍵(サービスアカウントの JSON ファイル)を生成してダウンロードする。取得手順は「Google Firebase の Cloud Firestore 基本操作ガイド」の秘密鍵の取得手順を参照する。
ダウンロードした JSON ファイルのパスを控えておく。以降の説明では,このファイルを「serviceAccountKey.json」として解説する。
- Python プログラムによる接続確認
秘密鍵ファイル(serviceAccountKey.json)のパスは実際のパスに置き換える。次のコードは,コレクション「products」の全ドキュメントを取得して表示する(コレクションが空の場合は何も表示されない)。
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore cred = credentials.Certificate('serviceAccountKey.json') firebase_admin.initialize_app(cred) db = firestore.client() docs = db.collection('products').stream() for doc in docs: print('{} => {}'.format(doc.id, doc.to_dict()))
Cloud Firestore へのデータの追加と確認
次の 3件 のデータを追加する。
id 1, name orange, price 50 id 2, name apple, price 100 id 3, name apple, price 150
- データの追加
秘密鍵ファイル(serviceAccountKey.json)のパスは実際のパスに置き換える。次のコードは,コレクション「products」に 3件のドキュメントを追加する。
document()を引数なしで呼ぶと,ドキュメント ID は自動生成される。import firebase_admin from firebase_admin import credentials from firebase_admin import firestore cred = credentials.Certificate('serviceAccountKey.json') firebase_admin.initialize_app(cred) db = firestore.client() db.collection('products').document().set({'id': 1, 'name': 'orange', 'price': 50}) db.collection('products').document().set({'id': 2, 'name': 'apple', 'price': 100}) db.collection('products').document().set({'id': 3, 'name': 'apple', 'price': 150}) - 追加したデータの確認
次のコードで,コレクション「products」の内容を取得して表示する。
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore cred = credentials.Certificate('serviceAccountKey.json') firebase_admin.initialize_app(cred) db = firestore.client() docs = db.collection('products').stream() for doc in docs: print('{} => {}'.format(doc.id, doc.to_dict()))