Pythonを使用したGoogle Firebase Cloud Firestoreの実践的な活用方法

目次

  1. Google Firebaseの主要機能と特徴
  2. 環境構築と初期設定
  3. Cloud Firestoreプロジェクトの作成手順
  4. Firebase Admin SDKの導入方法
  5. 実践的なクエリ例と活用方法

Google Firebaseの主要機能と特徴

高性能なクラウドストレージサービスとして,包括的なインフラストラクチャを提供.

データベース機能:PythonとJavaScriptの双方で最適化された互換性を実現し,シームレスな開発環境を提供.

認証システム(ID,パスワード),セキュリティ管理,課金システムなど,アプリケーション開発に必要な統合機能を完備.

* iOS,Android,Webプラットフォームに完全対応.利用開始にはGoogleアカウントの登録が必要.

環境構築と初期設定

Python のインストール(Windows上)

注:既にPython(バージョン3.12を推奨)がインストール済みの場合は,この手順は不要である.

  1. コマンドプロンプト管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
  2. 以下のコマンドを順次実行し,Pythonをインストールする(下のコマンドにより Python 3.12 がインストールされる).
    winget install --scope machine Python.Launcher
    winget install --scope machine Python.Python.3.12
    

【関連する外部サイト】

【サイト内の関連ページ】

Git のインストール(Windows 上)

Gitは,ソフトウェア開発におけるソース管理を実現する,分散型バージョン管理システムである.

インストールされるGitは 「Git for Windows」として知られ, GitとMinGWを統合した開発環境である.

  1. コマンドプロンプト管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択\ )
  2. 以下のコマンドを順次実行し,Gitをインストールする.
    winget install --scope machine Git.Git
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\Program Files\Git\cmd\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machin\
    e\")"
    

Firebase Admin SDKの設定と秘密鍵の取得手順

公式ドキュメントに基づいて,以下の手順で設定を実施する.

  1. Firebaseの公式ポータルサイトにアクセスする.

    https://firebase.google.com/?hl=ja

  2. メインページから「使ってみる (GET STARTED)」を選択する.
  3. Googleアカウントによる認証を実行する.

    有効なセッションが存在する場合は,自動的に次のステップに移行する.

  4. Firebaseコンソールへのアクセス権限を確認する.
  5. コンソール画面から対象となるプロジェクトを選択する.

    * 新規プロジェクトを作成する場合は,「プロジェクトを追加」から設定を開始する.

  6. Project Overviewメニューから設定ボタンをクリックする.
  7. メニューから「プロジェクトを設定」を選択する.
  8. 左側のサイドメニューから「サービスアカウント」を選択する.
  9. 開発に使用する言語として「Python」を選択する.

    選択後,Firebase Admin SDKの設定に必要なコードスニペットが自動的に表示される.

    * この画面では「Firebase サービスアカウントを使用したPythonアプリケーションの認証機能」の詳細が確認できる.

  10. 新しい秘密鍵の生成」ボタンを選択する.
  11. 表示される確認ダイアログで「キーを生成」を実行する.
  12. 生成された認証用JSONファイルのダウンロードを確認する.

    ダウンロードされた認証用JSONファイルのファイル名を記録する(後続の設定プロセスで使用).

Firebase Admin SDKのPython環境への導入

セットアップガイドおよび クイックスタートの手順に従って実装を進める.

  1. Windows環境でコマンドプロンプトを管理者権限で起動する.
  2. Firebase Admin SDKのインストールを実行する.

    以下のコマンドを実行する.

    pip install -U firebase-admin
    
  3. Pythonプログラムで動作確認を実施する.

    効率的な開発環境として,Jupyter Qt ConsoleSpyderPyCharmPyScripterなどの統合開発環境の利用を推奨する.

    以下のサンプルコードを実行する.

    エディタで「H:/my-project-abcde-firebase-adminsdk-q53ez-5d420dbcf2.json」を,ダウンロードした認証用JSONファイルの実際のパスに置き換える.

    このプログラムは,データベース内の「products」コレクションに格納されているドキュメントを取得して表示する. 実行結果の例も併せて提示する.

    import firebase_admin
    from firebase_admin import credentials
    from firebase_admin import firestore
    
    cred = credentials.Certificate('H:/my-project-abcde-firebase-adminsdk-q53ez-5d420dbcf2.json')
    app = firebase_admin.initialize_app(cred)
    
    db = firestore.client()
    ref = db.collection(u'products')
    docs = ref.stream()
    
    for doc in docs:
        print(u'{} => {}'.format(doc.id, doc.to_dict()))
    
    

    以下のようなコレクション構造を前提としている.

    実行結果:

* Webインターフェースを使用したデータベース管理手順

  1. Firebaseポータルサイトにアクセスする.

    https://firebase.google.com/?hl=ja

    * 必要に応じてGoogleアカウントでの認証が要求される.

  2. 使ってみる (GET STARTED)」を選択する.
  3. Firebaseコンソールの表示を確認する.
  4. 管理対象のプロジェクトを選択する.

    * 新規プロジェクトが必要な場合は「プロジェクトを追加」から作成することができる.

  5. 左側のサイドメニューから「Database」を選択する.
  6. データベース管理画面でコレクションとドキュメントの作成・編集作業が可能となる.

実践的なクエリ例

前述のコード例に続いて,以下のクエリ処理を実行する. 「u'name', u'==', u'apple'」は文字列の完全一致検索を実行する処理である.

a = ref.where(u'name', u'==', u'apple')
docs = a.stream()
for doc in docs:
    print(u'{} => {}'.format(doc.id, doc.to_dict()))

実行結果:

日時データの比較クエリ例

u'time', u'>', datetime(2019,4,13,3,10,0)」の条件式でPythonのdatetimeオブジェクトを使用した日時比較クエリを実行する.

import datetime
a = ref.where(u'time', u'>', datetime(2019,4,13,3,10,0))
docs = a.stream()
for doc in docs:
    print(u'{} => {}'.format(doc.id, doc.to_dict()))