トップページ -> インストール,設定,利用 -> Google Firebase -> Python で Google Firebase の Cloud Firestore (クラウド・ファイアストア)を使ってみる
[サイトマップへ], [サイト内検索へ]

Python で Google Firebase の Cloud Firestore (クラウド・ファイアストア)を使ってみる

【このページの目次】

  1. Google Firebase でできること
  2. 前準備
  3. クラウド・ファイアストア(Cloud Firestore)を扱うプロジェクトの新規作成
  4. Firebase Admin SDK を追加
  5. クエリの例

Google Firebase でできること

オンラインストレージ

[image]

データベース: Python, JavaScript と相性が良い.

[image]

その他、認証(ID,パスワード)など(セキュリティや課金に必要)

※ iOS, Android, Web で動く.使用には Google のアカウントが必要


前準備

Python, Git のインストール

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

Firebase Admin SDK 構成スニペットと秘密鍵の入手

https://firebase.google.com/docs/admin/setup?hl=ja#initialize_the_sdk の記述に従う

  1. Firebase の Web ページを開く

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

  2. 使ってみる (GET STARTED)」をクリック

    [image]
  3. google のアカウント(IDとパスワード)でログインする

    すでにログイン済みのときは,ログインのための画面が出ない.次へ進む.

  4. Firebase コンソールの画面に変わるので確認する

    [image]
  5. Firebase コンソールの画面で、使用したいプロジェクトを選ぶ

    ※ このとき、プロジェクトを新規作成したいときは、「プロジェクトを追加」をクリックして、プロジェクトの新規作成を行う

    [image]
  6. プロジェクトの全般で、「Project Overview」の右横のボタンをクリック

    [image]
  7. プロジェクトを設定」をクリック。

    [image]
  8. サービスアカウント」をクリック。

    [image]
  9. Python」を選ぶ

    このとき、画面には、Firebase Admin SDK 構成スニペットが表示される。

    [image]

    ※ この画面では、「Firebase サービスアカウントを使用し、Python プログラムで認証できる」ことが確認できる

    [image]
  10. 新しい秘密鍵の生成」をクリック

    [image]
  11. 表示を確認したのち、「キーを生成」をクリック

    [image]
  12. JSONファイルがダウンロードが始まる

    このとき、ダウンロードされたJSONファイルのファイル名を確認しておく(あとでファイル名を使用する)

    [image]

Python 用の Firebase Admin SDK のインストール

https://firebase.google.com/docs/admin/setup?hl=ja#initialize_the_sdk, https://firebase.google.com/docs/firestore/quickstart?hl=ja の記述に従う

  1. Windows のコマンドプロンプトを管理者として開く
  2. Firebase Admin SDK のインストール

    コマンドプロンプトで,次のコマンドを実行

    pip install -U firebase-admin
    
  3. いまからPython プログラムを動かす

    Python のプログラム作成には,開発環境や Python コンソール(Jupyter Qt ConsolespyderPyCharmPyScripter など)が便利.

    下の Python プログラムを実行する

    次に、Python コンソールの編集機能を使って、「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()))
    
    

    次のようにコレクションとドキュメントを作成していたとする。

    [image]

    実行結果は次の通り。

    [image]

Web ブラウザを使って、データベースの確認、コレクションの追加、ドキュメントの追加を行いたいときの手順

  1. Firebase の Web ページを開く

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

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

  2. 使ってみる (GET STARTED)」をクリック

    [image]
  3. Firebase コンソールの画面に変わるので確認する

    [image]
  4. Firebase コンソールの画面で、使用したいプロジェクトを選ぶ

    ※ このとき、プロジェクトを新規作成したいときは、「プロジェクトを追加」をクリックして、プロジェクトの新規作成を行う

    [image]
  5. Database」をクリック

    [image]
  6. 次の画面で、データベースの確認、コレクションの追加、ドキュメントの追加を行うことができる

    [image]

クエリの例

上のプログラムに続いて、次のようなクエリを実行してみる。 「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()))

実行結果は次のようになる

[image]

日付の大小比較の例

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()))

実行結果は次のようになる


本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

問い合わせ先: 金子邦彦(かねこ くにひこ) [image]