トップページ -> データベース研究スタート -> NoSQL データベースとインターネットストレージ -> Python で Google Firebase の Realtime Database (リアルタイムデータベース), Google Firebase Storage を使ってみる(pyrebase を使用)
サイトマップ

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

金子邦彦研究室: データベース、人工知能(AI)、データサイエンスの融合により不可能を可能にする

参考 Web ページ

https://firebase.google.com/docs/web/setup

目次

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

前準備

Python, git のインストール

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


隔離された 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. Window でコマンドプロンプトを実行

  2. ダウンロード用のディレクトリの前準備
    mkdir c:\tools
    cd c:\tools
    rmdir /s /q mpir
    

  3. MPIR のダウンロード

    参考Webページ: http://mpir.org/downloads.html

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

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
    

    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 の Web ページを開く

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

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

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

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

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

  4. プロジェクトの追加

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

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

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

  5. 次へ」をクリック

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

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

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

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

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

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

    Web ブラウザは閉じて良い


Google Firebase Storage を使ってみる

  1. Firebase の Web ページを開く

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

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

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

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

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

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

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

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

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

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

    Anacondaに入っている開発環境 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') 
    

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

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