Python3で Firebase Realtime Databaseを使ってみる

コードPython

Firebase Realtime Databaseとは?

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

Google公式のページ

Firebase Realtime Database
NoSQL クラウド データベースでデータの保管と同期を行うことができます。データはすべてのクライアントにわたってリアルタイムで同期され、アプリがオフラインになっても引き続き使用できます。

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":"tanaka@example.com"
    "2"
        "name":"Masuda"
        "email":"masuda@example.com"

Pythonコード

ref = db.reference('user')
ref.set({
    '1': {
        'name': 'Tanaka',
        'email': 'tanaka@example.com'
    },
    '2': {
        'name': 'Masuda',
        'email': 'masuda@example.com'
    }
})

このコードを実行してからFirebaseのコンソールを確認して次のように表示されていれば成功です。

データを追加

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

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

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

ref.child("3").set({
    "name":"Test",
    "email":"test@example.com"
})

実行するとuserに新しく3が追加されます。

データの更新

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

一番最後に追加した”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': 'tanaka@example.com', 'name': 'Tanaka'}, {'email': 'masuda@example.com', 'name': 'Masuda'}]

参考URL

Admin Database API の概要  |  Firebase Realtime Database
データの保存  |  Firebase Realtime Database
[python] Firebase Realtime Databaseのはじめ方 - Qiita
Firebase Realtime Database とは Googleの説明を引用します。無料枠があり、簡単に利用できるDBの一つです。 Firebase Realtime Database は、リアルタイムにデータを保存...
データの取得  |  Firebase Realtime Database
ビスケットを送る

コメント

タイトルとURLをコピーしました