57
48

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[python] Firebase Realtime Databaseのはじめ方

Last updated at Posted at 2019-01-06

#Firebase Realtime Database とは
Googleの説明を引用します。無料枠があり、簡単に利用できるDBの一つです。

Firebase Realtime Database は、リアルタイムにデータを保存およびユーザー間で同期できる、クラウドホスト型 NoSQL データベースです。 新機能: Cloud Firestore(ベータ版)を使用すると、グローバルなスケールでアプリデータを保存、同期、照会することができます。
https://firebase.google.com/docs/database/?hl=ja

#install
以下のコマンドで、firebase-adminをインストールします。

$ pip3 install firebase-admin

#ルールを以下の用に変更する

image.png

{
  "rules": {
      ".read": true,
      ".write": true
  }
}

#Firebaseにアクセスする
以下のコードでアクセスし、データを追加・参照することができます。

firebase.py
import firebase_admin
from firebase_admin import credentials
from firebase_admin import db

cred = credentials.Certificate('./<your service account json>')

firebase_admin.initialize_app(cred, {
    'databaseURL': 'https://<your database url>',
    'databaseAuthVariableOverride': {
        'uid': 'my-service-worker'
    }
})

##databaseに初期データを追加する
users_ref = db.reference('/users')

users_ref.set({
    'user001': {
        'date_of_birth': 'June 23, 1984',
        'full_name': 'Sazae Isono'
        },
    'user002': {
        'date_of_birth': 'December 9, 1995',
        'full_name': 'Tama Isono'
        }
    })

# databaseにデータを追加する
users_ref.child('user003').set({
    'date_of_birth': 'Aug 23, 1980',
    'full_name': 'Masuo Isono'
    })

##データを取得する
print(users_ref.get())

これを実行すると以下のようにデータが保管されます。

image.png

#一部データのみ更新する
データを保存後に一部のデータのみ更新したい場合があると思います。
例えば以下のようなケースです。

image.png

そのような場合はUPDATE関数を使って上記の図のような結果になるように更新することができます。

firebase.py

##データを更新する
updates = {}
updates['/user001/full_name'] = 'Sazae Fuguta'
users_ref.update(updates)

#HerokuにデプロイしたPython3からFirebaseにアクセスするには

pip freezeを行い、必要なモジュールをrequirements.txt化して、Heroku側に教えて上げてくださいね。


# インストール済みのpackage情報をrequirements.txtに保存
$ pip freeze > requrements.txt

#参考URL 

57
48
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
57
48

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?