Python で Google Firebase の Realtime Database (リアルタイムデータベース), Google Firebase Storage を使ってみる(pyrebase を使用)

関連する外部ページhttps://firebase.google.com/docs/web/setup

目次

  1. 前準備
  2. リアルタイムデータベース(Realtime Database)を扱うプロジェクトの新規作成
  3. Google Firebase Storage を使ってみる

前準備

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\")"
    

Python の仮想環境の作成

  1. これから作成するPython の仮想環境の名前とPythonのバージョンを設定する
  2. Windows のコマンドプロンプトを起動する.
  3. 事前に Python をインストールしておく.

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

    conda create -n pyrebase python=2.7
    
  4. Python 環境の作成を確認
    conda info -e
    

これにより,既存のPython環境と, 新しく作成したPython環境(Python のバージョン 2.7名前は pyrebase)が共存する環境が整った.

Windows で MPIR のインストール

  1. Windows でコマンドプロンプトを実行
  2. ダウンロード用のディレクトリを作成
    mkdir c:\tools
    cd c:\tools
    rmdir /s /q mpir
    
  3. MPIR をダウンロード

    参考リンク

    http://mpir.org/downloads.html

    (現在は公開を終了している)

    cd c:\tools
    git clone https://github.com/BrianGladman/mpir.git mpir
    

Pythonパッケージ thisbejim/Pyrebase のインストール方法

GitHub で公開されているthisbejim/Pyrebaseの詳細なインストール手順を解説する

  1. Windows でコマンドプロンプトを起動
  2. thisbejim/Pyrebase の依存パッケージをインストール

    インストールの完了まで待機する.エラーメッセージが表示されていないことを確認する

    pip install -U requests==2.11.1 protobuf pytest future ply dill pyreadline
    pip install -U google-gax==0.12.5 requests-toolbelt==0.7.0 gcloud==0.17.0 oauth2client==3.0.0
    
  3. thisbejim/Pyrebase のインストール
    mkdir c:\pytools
    cd c:\pytools
    rmdir /s /q Pyrebase
    
    cd c:\pytools
    git clone https://github.com/thisbejim/Pyrebase
    cd Pyrebase
    python setup.py build
    python setup.py install
    
  4. インストールの完了確認

    エラーメッセージが表示されていないことを確認する

Realtime Database プロジェクトの作成手順

  1. Firebase の公式サイトにアクセス

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

    Google アカウント(IDとパスワード)が必要となる

  2. スタートガイド」を選択
  3. プロジェクトを追加」を選択

    画面が応答しない場合は,Webブラウザでサインアウトし,再度ログインして試す

  4. プロジェクトの基本設定

    プロジェクト名: 識別しやすい任意の名前を設定

    アナリティクスと課金の地域: 日本を選択

    利用規約: 内容を確認し,同意できる場合のみチェック(同意できない場合は Firebase の利用を見送る)

  5. 次へ」を選択
  6. 設定内容の確認

    料金プランが「Spark プラン」(無料プラン)であることを確認し, データベースを利用するため「Database」を選択する

  7. Realtime Database を作成するため,「データベースを作成」を選択する
  8. セキュリティルールの設定

    開発環境での試用のため「テストモードで開始」を選択し,「有効にする」をクリックする

  9. データベースの作成完了を確認

    これでセットアップが完了した

Firebase Storage の利用方法

  1. Firebase にアクセス

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

  2. スタートガイド」を選択
  3. 利用するプロジェクトを選択
  4. Storage の設定

    Storage タブで「ルール」を以下のように設定する.

    注意:この設定ではファイルが公開される.個人情報や著作権のある素材は絶対にアップロードしないこと.

  5. プロジェクト設定の確認
  6. 認証情報の確認

    表示されるプロジェクトIDウェブAPIキーは後で使用するため,メモしておく

  7. Pythonでの実装

    IPythonpyrebase環境を使用する

    Anaconda3spyderの使用を推奨する.

    Windows では「spyder(pyrebase)」を選択する

    「spyder(pyrebase)」が存在しない場合は, 前述の「conda install -y spyder」以降の手順を再実行する

    メニューから起動できない場合は,コマンドプロンプトで以下を実行:

    activate pyrebase
    spyder
    

    以下のコードでファイルの操作が可能である.

    C:/image/126.pngは実在するファイルパスに変更する必要がある

    import pyrebase
    
    config = {
        'apiKey': '<ウェブAPIキー>',
        'authDomain': '<プロジェクトID>.firebaseapp.com',
        'databaseURL': 'https://<プロジェクトID>.firebaseio.com',
        'storageBucket': '<プロジェクトID>.appspot.com'
    }
    
    firebase = pyrebase.initialize_app(config)
    
    photo_path = 'C:/image/126.png'
    storage = firebase.storage()
    storage.child('image/126.png').put(photo_path)
    print( storage.child('image/126.png').get_url(token=None) )
    storage.child('image/126.png').download('C:/image/hoge.png')
    

    エラーが発生していないことを確認する

  8. アップロードの確認

    Firebase コンソールのStorage タブでファイルが正常にアップロードされていることを確認できる