Python3で Firebase Realtime Databaseを使ってみる

2020/06/11

#Python

Firebase Realtime Databaseとは?


Realtime DatabaseはGoogleが運営しているFirebaseの中の一つの機能でJSON形式で保存されるクラウド型リアルタイムデーターベースです。

Google公式のページ

Pythonで使うには


PythonでFirebase Realtime Databaseを使うにははじめにFirebase Admin SDKをインストールする必要があります。

pipコマンドでインストールできます。

pip3 install firebase-admin


認証


PythonからFirebaseにアクセスするためにSDKを認証する必要があります。

コンソールの「設定」(歯車アイコン)から「サービスアカウント」「Firebase Admin SDK」を選択して「新しい秘密鍵の生成」をクリックします。

クリックすると注意画面が出てくるので「キーを生成」をクリックしてjson形式のキーファイルをダウンロードします。



キーファイルの取得ができたらファイルをPythonファイルと同じフォルダに入れて次のようにプログラムを書き足します。

import firebase_admin
from firebase_admin import credentials
from firebase_admin import db

cred = credentials.Certificate('キーファイルのファイルパス')

firebase_admin.initialize_app(cred, {
    'databaseURL': 'データベースのURL',
})


データの書き込み

初期データの書き込み


認証できたので実際にデータを書き込んでみます。
今回はサンプルで次のデータを書き込みます。

"user"
    "1"
        "name":"Tanaka"
        "email":"[email protected]"
    "2"
        "name":"Masuda"
        "email":"[email protected]"


Pythonコード

ref = db.reference('user')
ref.set({
    '1': {
        'name': 'Tanaka',
        'email': '[email protected]'
    },
    '2': {
        'name': 'Masuda',
        'email': '[email protected]'
    }
})


データを追加

初期データを書き込みすることができたので追加のデータも書き込んでみます。

初期データと同じ方法で書き込めそうですが、同じコードを使うと今までに追加したデータがリセットされてしまいます。

リセットせずに書き込むには次のようにコードを書く必要があります。

ref.child("3").set({
    "name":"Test",
    "email":"[email protected]"
})


データの更新


データを追加することができたので次に更新してみます。

一番最後に追加した”Test”を”Suzuki”に更新するプログラムです。

ref.child("3").update({
    "name":"Suzuki"
})


既存の項目を更新するだけでなく新しく項目を追加する事もできます。

今回は試しに”age”を追加してみます。

ref.child("3").update({
    "age":"20"
})


データの削除


最後にデータを削除する方法を紹介します。

次のようなコードで削除することができます。

ref.child("3").delete()


実行すると”3″が削除されます。

データの取得


次のコードでuserに入っているデータがすべて取得されます。

ref = db.reference('user')
print(ref.get())


実行

[None, {'email': '[email protected]', 'name': 'Tanaka'}, {'email': '[email protected]', 'name': 'Masuda'}]

関連記事:Python

AWS LambdaにPython(Flask)で作ったプロジェクトを手動でデプロイする

Python

Python3からFirebase Realtime DatabaseにTimestampを追加する方法

Python

Python3でFirebaseのtimestampをDatetimeに変換する方法

Python