python-firebaseでCRUD操作
Python経由でFirebaseのDBを操作することができるので、CRUD操作の方法をまとめた。
インストール
pipでrequestsとpython-firebaseをインストール。 python-firebase 1.2のチュートリアルだと、requestsのバージョン指定がある。 でも僕の場合、既にインストール済みver2.4.3を使ってるけど問題ないから関係ないっぽい。
$ sudo pip install requests==1.1.0 $ sudo pip install python-firebase
接続
インストールが完了したら、早速Firebaseに接続。2行でOK。
>>> from firebase import firebase >>> firebase = firebase.FirebaseApplication("https://<your-app-id>.firebaseio.com", None)
Create
putを使う。渡すのはdictのlist。引数は順に、url、key、value。urlは不要。 valueは単純に1とかの値でもいいし、dictのlistみたいな入り組んだのでもOK。とにかくjsonライクなデータ。jsonでもいい。 ちなみにdictのlistってなんて呼んでるんでしょうか、皆さん。
>>> data = [{'id': 'A001', 'name': 'Google'}, {'id': 'A002', 'name': 'Microsoft'}, {'id': 'A003', 'name': 'IBM'}] >>> result = firebase.put('', '/test', data)
Read
putで入れたデータはgetで取得。keyで指定したtest以下を読み込む。
>>> result = firebase.get('/test', None) >>> print result [{u'id': u'A001', u'name': u'Google'}, {u'id': u'A002', u'name': u'Microsoft'}, {u'id': u'A003', u'name': u'IBM'}]
Update
これもputでOK。dictのlistを渡したときの最初のidをA001からB001に変えてみる。 最初なので、/test/0となる。
>>> firebase.put('', '/test/0/id', 'B001') u'B001' >>> result = firebase.get('/test', None) >>> print result [{u'id': u'B001', u'name': u'Google'}, {u'id': u'A002', u'name': u'Microsoft'}, {u'id': u'A003', u'name': u'IBM'}]
Delete
そのままのメソッド名のdeleteを使う。test以下をまるごと消してみる。
>>> result = firebase.delete('/test', None) >>> result = firebase.get('/test', None) >>> print result None
その他
postを使ってもデータの挿入可能。チュートリアルだと、これが使われているけど、 IDが割り振られるので、不要な人はputでいいと思う。
>>> result = firebase.post('/test', data) >>> result = firebase.get('/test', None) >>> print result {u'-KRxkKQIBasry9UCf7Bc': [{u'id': u'A001', u'name': u'Google'}, {u'id': u'A002', u'name': u'Microsoft'}, {u'id': u'A003', u'name': u'IBM'}]}