金子邦彦研究室情報工学全般Google FirebasePython で Google Firebase の Realtime Database (リアルタイムデータベース), Google Firebase Storage を使ってみる(pyrebase を使用) ー>

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, Git のインストール: 別ページ »で説明

git の URL: https://git-scm.com/

以下,Windows でインストール済みであるものとして説明を続ける.

Python の仮想環境の作成

  1. 今から作成するPython 環境の名前と、Pythonのバージョンを決めておく
  2. Windows のコマンドプロンプトを実行する.
  3. 前もって Python をインストールしておく.

    次のコマンドを実行.

    conda create -n pyrebase python=2.7
    

    [image]
  4. Python 環境が作成できたことを確認
    conda info -e
    

これで、もとからの Python 環境と, 新規作成されたPython 環境(Python のバージョン 2.7名前は pyrebase)の共存ができた。

Windows で MPIR のインストール

  1. Window でコマンドプロンプトを実行
  2. ダウンロード用のディレクトリの前準備
    mkdir c:\tools
    cd c:\tools
    rmdir /s /q mpir
    

    [image]
  3. MPIR のダウンロード

    関連する外部ページhttp://mpir.org/downloads.html

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

    [image]

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

GitHub で公開されているthisbejim/Pyrebase をインストールする

  1. Window でコマンドプロンプトを実行
  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
    

    [image]

    cd c:\pytools
    git clone https://github.com/thisbejim/Pyrebase
    cd Pyrebase
    python setup.py build
    python setup.py install 
    

    [image]
  4. インストール終了の確認

    エラーメッセージが出ていないことを確認

    [image]

リアルタイムデータベース(Realtime Database)を扱うプロジェクトの新規作成

  1. Firebase の Web ページを開く

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

    ※ このとき、google のアカウント(IDとパスワード)が必要になる可能性がある

  2. スタートガイド」をクリック

    [image]
  3. プロジェクトを追加」をクリック

    ※ このとき、いつまで待っても画面が変わらないというときは、Webブラウザで「サインアウト」してもう1度やり直すとうまく行くかもしれません.

    [image]
  4. プロジェクトの追加

    プロジェクト名: 何でもよいが、あとで分かりやすい名前

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

    チェックボックス: 同意できる場合のみチェック(同意できないときは、Firebase を使わない)

    [image]
  5. 次へ」をクリック

    [image]
  6. 画面が変わるので確認.

    まず、料金プランが「Spark プラン」になっていることを確認する. Spark プランは料金無料のプラン. データベースを使いたいので、「Database」をクリック

    [image]
  7. リアルタイムデータベース(Realtime Database)を作成して使いたいので、Realtime Database の下の「データベースを作成」をクリック

    [image]
  8. リアルタイムデータベース(Realtime Databse)のセキュリティルールでは、 ロックモードかテストモードを選ぶ.

    ここでは、試用することにしたい(実データは入れずに、手軽に試してみたい)ので、 「テストモードで開始」を選び「有効にする」をクリック

    [image]
  9. データベースの作成が終わると、画面が変わるので確認する

    Web ブラウザは閉じて良い

    [image]

Google Firebase Storage を使ってみる

  1. Firebase の Web ページを開く

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

  2. スタートガイド」をクリック

    [image]
  3. 使いたいプロジェクトを選ぶ

    [image]
  4. Storage タブをクリック。「ルール」のところで、試しに次のように設定する

    これは、ストレージ(Storage)に置いたファイルは、全世界に丸見えになるという設定なので、十分に注意して使う。 プライバシに関わるもの、第三者の著作物を置いてはいけないのは当然である。

    [image]
  5. Project Overview」を展開し、「プロジェクトの設定」をクリック

    [image]
  6. 情報が表示されるので確認する。

    ここに表示されたプロジェクトIDウエブAPIキーは、あとで使用する

    [image]
  7. Python プログラムを動かしたい.

    そのために, IPython シェルのコンソールで、Python 環境(名前は pyrebase)を使う

    Anaconda3 に入っている開発環境 spyder を実行し,右下の ipython コンソールを使うのが簡単.

    Windows のスタートメニューで、 「spyder」の方ではなく、 「spyder(pyrebase)」を開く。 これで、spyder の中で、Python環境pyrebaseが有効になる

    ※「spyder(pyrebase)」がない!というときは、 この Web ページの「conda install -y spyder 」のところに 戻り、それと、それ以降のコマンドをやり直す

    Windows のスタートメニューで起動できないときは、Windowsのコマンドプロントで次を実行

    activate pyrebase
    spyder
    

    次のプログラムは、ファイルのアップロード、アップロードしたファイルのURL取得、ファイルのダウンロードを行うプログラムである

    ファイル名 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') 
    

    エラーメッセージが出ていないことを確認する

    [image]
  8. Webブラウザで、Firebase の「Storage」のタブで、ファイルがアップロードできたことを確認

    [image]