【Firebase】Firestoreのデータをcsv出力(Macで)

●やりたいこと
FirebaseのFirestoreに格納されたデータをcsv出力したい

●ポイント
・Firebaseには、直接csv出力する機能がないので、スクリプト等で引っ張ってこなければいけない

●実現方法概要
①javascriptでJSON形式で一旦データを引っ張ってくる
②jqコマンドでJSONデータをcsvに変換

●事前準備
①「firestore-import-export」をgit cloneしておく

git clone https://github.com/dalenguyen/firestore-import-export.git

②jqコマンドを使えるようにインストールしておく

brew install jq

③Firebaseにアクセスするための秘密鍵をローカルにダウンロードしておく
→Firebaseの歯車マーク→プロジェクトの設定→サービスアカウント→新しい秘密鍵の生成
④①のexport.jsの”serviceAccount”のパスと名前を③に合わせる
⑤①のexport.jsの”databaseURL”を自分のFirebaseのprojectIDに変更する(“ionic-firestore-dn”をprojectIDに置き換える)

●実現方法
①JSON形式でデータ取得(firestore-export.jsonというファイル名で生成される)

node export.js <コレクション名> <サブコレクション名(option)>

②JSONデータをcsvに変換(以下は例)

cat firestore-export.json | jq -r '.[]|.[]|[.time, .data]|@csv' > XXX.csv

jqコマンドでselect等のデータ指定や抽出ができるので、お好みで
参考:https://stedolan.github.io/jq/manual/

コメント

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