●やりたいこと
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/
コメント