📌

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

2021/03/05に公開

Cloud Functions × Cloud Firestore 連携

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

Image from Gyazo

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

Image from Gyazo

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

Image from Gyazo

Cloud Firestore データ生成

Image from Gyazo

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

Image from Gyazo

Cloud Functions 実装 ※HTTPトリガー

Cloud Firestore 秘密鍵インポート

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 データやり取り

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

パッケージ指定

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

デプロイ実施

Image from Gyazo

Cloud Firestore トリガーの場合

トリガー設定

Image from Gyazo

Function 設定

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

デプロイ実施

Image from Gyazo

参考文献

Discussion