導入
今回はFirebaseのNoSQLのデータストアであるFireStoreに直接データを挿入していきます。
JSONファイルを用意し、今回のソースを実行するだけでFireStoreにデータが挿入できます。
コンソールからデータを1つ1つ作成するよりも、早くて便利です。
手順
秘密鍵の取得
Firebaseの操作をPC上で実施するため、秘密鍵を取得する必要があります。
まず、Firebaseのコンソールを開き、FireStoreにデータを挿入したいプロジェクトを開きます。
その画面から、以下の画面のように「1.プロジェクトの設定」 → 「サービスアカウント」 → 「秘密鍵を生成」をクリックしていき、ポップアップ内で「キーを生成」をクリックすると、秘密鍵がJSON形式でDLされます。
以下、この秘密鍵はsecret.json
とします。
アップロードデータの作成
以下のようにJSONファイルでデータを作成しておきます。
今回は例として動物の情報を挿入したいと思います。
[
{
"species": "Lion",
"habitat": "Savanna",
"size": 250
},
{
"species": "Penguin",
"habitat": "Antarctica",
"size": 50
},
{
"species": "Sheep",
"habitat": "Grassland",
"size": 120
}
]
今回は「animal」コレクションに対して、idがspeciesであり、habitatとsizeの情報を持つデータをFireStoreに格納するものとします。
Pythonコード(データアップロード処理)
import firebase_admin
import json
from firebase_admin import credentials, firestore
SECRET_KEY_PATH = '/path/to/secret.json'
DATA_FILE_PATH = '/path/to/upload_data.json'
COLLECTION_NAME='animal'
cred = credentials.Certificate(SECRET_KEY_PATH)
firebase_admin.initialize_app(cred)
db = firestore.client()
# Data
animal_data = open(DATA_FILE_PATH, 'r')
animal_data_load = json.load(animal_data)
for d in animal_data_load:
# IDとするためspeciesを取得
species = d["species"]
# それ以外はJSON形式でdataとして保持
data = {
"habitat": d["habitat"],
"size": d["size"]
}
# documentの引数にIDとなるspeciesを、setにdataを設定している
db.collection(COLLECTION_NAME).document(species).set(data)
実行結果
上記ソースを実行すると、FireStoreにデータが格納されます。
終わりに
今回はFirebaseのNoSQLデータベースであるFirestoreにJSONファイルのデータをコンソールを介さず、直接挿入する方法について紹介しました。
ご参考にしてもらえたら幸いです。