『入る学科間違えた高専生』の日記

プログラミングのコードを書いたりする予定です。あとは日記等。あといつまで高専生やねん

PythonでFirebase Storageにファイルをアップロードした

はじめに

題の通り今回は、Firebase StorageにPythonを使ってアップロードをするというサンプルです。
基本的にFirebaseをAPIから操作する場合はCredentialを必要とするので間違ってPublicな場所に公開しちゃった〜とかに気をつけましょう

環境

使用するライブラリ

github.com

Firebase設定

f:id:nanashinodonbee:20180603091600p:plain

右ページの アプリを追加 ボタンを押して、ウェブアプリに Firebase を追加 を押して出てくるポップアップの内容をどっかにコピーする。

f:id:nanashinodonbee:20180603091852p:plain

めっちゃ有り難いですね。このまま使える!

Pyrebase設定

Pyrebaseはpipでインストールできます

$ pip install pyrebase
import pyrebase

config = {
    'apiKey': 'apiKey',
    'authDomain': 'projectId.firebaseapp.com',
    'databaseURL': 'https://databaseName.firebaseio.com',
    'storageBucket': 'projectId.appspot.com'
}

firebase = pyrebase.initialize_app(config)

それぞれ config 辞書のvalue側にさっきコピったものを貼っ付ける。

終わり

アップロードをする

Storageの最適なルールを設定しておいてください。
今回は allow read, write; の設定です。

また、以下は画像PNGをアップロードするサンプルです。

import pyrebase

config = {
    'apiKey': 'apiKey',
    'authDomain': 'projectId.firebaseapp.com',
    'databaseURL': 'https://databaseName.firebaseio.com',
    'storageBucket': 'projectId.appspot.com'
}

firebase = pyrebase.initialize_app(config)

photo_path = '/path/to/image.png'
storage = firebase.storage()
storage.child('image/hoge/image.png').put(photo_path)  # どこにアップロードしたいかのパス指定もできます
image_url = storage.child('image/hoge/image.png').get_url(token=None)  # ダウンロードURLの取得

最後に

また時間が開いてしまった投稿になってしまった。ちょっともう無理かもしれない。
22週間ずっとブログへの投稿が続いただけでもすごいと思う。自分を自分で褒めたい。

ということで、とても簡素な記事ですがPythonを使ってFirebase Storageにアップロードするサンプルでした。
Firebaseが公式でリリースしている firebase-admin というものがあるのですが、こっちだとなんかよくわからない状態になったので以前から使っていたPyrebaseを使用しました。

github.com

Introduction to the Admin Cloud Storage API  |  Firebase Documentation

多分ここら辺を読んでいけばいけるんだと思う。