Google Cloud Functions × Cloud FirestoreをPythonで実装する


Cloud Functions × Cloud Firestore 連携

Firebaseプロジェクト > 「プロジェクトを設定」を選択

サービスアカウントを選択

新しい秘密鍵の生成をクリック

Cloud Firestore データ生成

GCPコンソール > Cloud Functions > 「Create function」 選択

Cloud Functions 実装 ※HTTPトリガー

Cloud Firestore 秘密鍵インポート

main.py
import firebase_admin
from firebase_admin import firestore
from firebase_admin import credentials


def sample_functions(request):
    cred = credentials.Certificate("path/to/serviceAccountKey.json")  # 秘密鍵

    firebase_admin.initialize_app(cred)

Cloud Firestore データやり取り

main.py
import firebase_admin
from firebase_admin import firestore
from firebase_admin import credentials

def sample_functions(request):
    cred = credentials.Certificate("path/to/serviceAccountKey.json")  # 秘密鍵

    firebase_admin.initialize_app(cred)

    ## Firestore アクセス
    db = firestore.client()

    ## document指定
    doc_ref = db.collection('users').document('user')

    ## データ取得
    doc = doc_ref.get()

    sample = json.dumps(doc.to_dict())

    return sample

パッケージ指定

requirements.txt
# Function dependencies, for example:
# package>=version
firebase-admin
google-cloud-firestore

デプロイ実施

Cloud Firestore トリガーの場合

トリガー設定

Function 設定

main.py
import firebase_admin
from firebase_admin import firestore
from firebase_admin import credentials


def sample_functions(data, context):
    cred = credentials.Certificate("path/to/serviceAccountKey.json")  # 秘密鍵

    firebase_admin.initialize_app(cred)

    ## トリガー呼び出し
    trigger_resource = context.resource

    ## Firestore アクセス
    db = firestore.client()

    ## document指定
    doc_ref = db.collection('users').document('user')

    ## データ取得
    doc = doc_ref.get()

    sample = json.dumps(doc.to_dict())

    return sample

デプロイ実施

参考文献