Python で Google Firebase の Realtime Database (リアルタイムデータベース), Google Firebase Storage を使ってみる(pyrebase を使用)
【関連する外部ページ】 https://firebase.google.com/docs/web/setup
【目次】
前準備
Python 3.12 のインストール
インストール済みの場合は実行不要。
管理者権限でコマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)し、以下を実行する。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要である。
REM Python をシステム領域にインストール
winget install --scope machine --id Python.Python.3.12 -e --silent
REM Python のパス設定
set "PYTHON_PATH=C:\Program Files\Python312"
set "PYTHON_SCRIPTS_PATH=C:\Program Files\Python312\Scripts"
echo "%PATH%" | find /i "%PYTHON_PATH%" >nul
if errorlevel 1 setx PATH "%PATH%;%PYTHON_PATH%" /M >nul
echo "%PATH%" | find /i "%PYTHON_SCRIPTS_PATH%" >nul
if errorlevel 1 setx PATH "%PATH%;%PYTHON_SCRIPTS_PATH%" /M >nul
【関連する外部ページ】
Python の公式ページ: https://www.python.org/
AI エディタ Windsurf のインストール
Pythonプログラムの編集・実行には、AI エディタの利用を推奨する。ここでは,Windsurfのインストールを説明する。
管理者権限でコマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)し、以下を実行して、Windsurfをシステム全体にインストールする。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要となる。
winget install --scope machine Codeium.Windsurf -e --silent
【関連する外部ページ】
Windsurf の公式ページ: https://windsurf.com/
Gitのインストール
管理者権限でコマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)し、以下を実行する。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要となる。
REM Git をシステム領域にインストール
winget install --scope machine --id Git.Git -e --silent
REM Git のパス設定
set "GIT_PATH=C:\Program Files\Git\cmd"
if exist "%GIT_PATH%" (
echo "%PATH%" | find /i "%GIT_PATH%" >nul
if errorlevel 1 setx PATH "%PATH%;%GIT_PATH%" /M >nul
)
Python の仮想環境の作成
- これから作成するPython の仮想環境の名前とPythonのバージョンを設定する
- Python の仮想環境の名前: pyrebase
- Pythonのバージョン: 2.7
- Windows のコマンドプロンプトを起動する.
- 事前に Python をインストールしておく.
以下のコマンドを実行する.
conda create -n pyrebase python=2.7
- Python 環境の作成を確認
conda info -e
これにより,既存のPython環境と, 新しく作成したPython環境(Python のバージョン 2.7,名前は pyrebase)が共存する環境が整った.
Windows で MPIR のインストール
- Windows でコマンドプロンプトを実行
- ダウンロード用のディレクトリを作成
mkdir c:\tools cd c:\tools rmdir /s /q mpir
- MPIR をダウンロード
【参考リンク】
http://mpir.org/downloads.html
(現在は公開を終了している)
cd c:\tools git clone https://github.com/BrianGladman/mpir.git mpir
Pythonパッケージ thisbejim/Pyrebase のインストール方法
GitHub で公開されているthisbejim/Pyrebaseの詳細なインストール手順を解説する
- Windows でコマンドプロンプトを起動
- 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
- 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
- インストールの完了確認
エラーメッセージが表示されていないことを確認する
Realtime Database プロジェクトの作成手順
- Firebase の公式サイトにアクセス
https://firebase.google.com/?hl=ja
※ Google アカウント(IDとパスワード)が必要となる
- 「スタートガイド」を選択
- 「プロジェクトを追加」を選択
※ 画面が応答しない場合は,Webブラウザでサインアウトし,再度ログインして試す
- プロジェクトの基本設定
プロジェクト名: 識別しやすい任意の名前を設定
アナリティクスと課金の地域: 日本を選択
利用規約: 内容を確認し,同意できる場合のみチェック(同意できない場合は Firebase の利用を見送る)
- 「次へ」を選択
- 設定内容の確認
料金プランが「Spark プラン」(無料プラン)であることを確認し, データベースを利用するため「Database」を選択する
- Realtime Database を作成するため,「データベースを作成」を選択する
- セキュリティルールの設定
開発環境での試用のため「テストモードで開始」を選択し,「有効にする」をクリックする
- データベースの作成完了を確認
これでセットアップが完了した
Firebase Storage の利用方法
- Firebase にアクセス
- 「スタートガイド」を選択
- 利用するプロジェクトを選択
- Storage の設定
Storage タブで「ルール」を以下のように設定する.
注意:この設定ではファイルが公開される.個人情報や著作権のある素材は絶対にアップロードしないこと.
- プロジェクト設定の確認
- 認証情報の確認
表示されるプロジェクトIDとウェブAPIキーは後で使用するため,メモしておく
- Pythonでの実装
IPythonでpyrebase環境を使用する
※ 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')
エラーが発生していないことを確認する
- アップロードの確認
Firebase コンソールのStorage タブでファイルが正常にアップロードされていることを確認できる