Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9233

【Firebase】FireStoreに一括でcsvまたはjson形式のデータをアップロードする

$
0
0

概要

FireStoreは、モバイル開発においてとても便利なDatabaseの一つですが、データの一括importが少々手間取ったので方法を記載しておきます。

Step1: Jsonデータの用意

私の場合はMacのNumbersを使用して、CSVを作成し、CSV→Json変換サイトを用いてjsonデータに変換しています。

image.png

image.png

Step2: Service Key をFirebaseコンソールよりダウンロード

Service Key をFirebaseコンソールよりダウンロードします。
image.png
Screen Shot 2020-09-26 at 8.30.16 AM.png

Step3: node.js プロジェクトの設定

Screen Shot 2020-09-25 at 11.22.42 PM.png

上記のコマンド実行後、実行したディレクトリにPackage.jsonが生成されます。
Step1で生成したjsonファイル(data.json)Step2で生成したServiceKeyのファイル(serviceAccountKey.json)も同ディレクトリ内に格納します。

Step4: index.jsの作成

terminalで以下を実行。

npm install firebase-admin

すると、node_moduleというディレクトリが生成されます。
image.png

Firestoreにimport用のプログラムを作成します。

index.js
constadmin=require('./node_modules/firebase-admin');constserviceAccount=require("./serviceAccountKey.json");constdata=require("./data.json");constcollectionKey="words";//Change!! name of the collectionadmin.initializeApp({credential:admin.credential.cert(serviceAccount),databaseURL:"https://your-database.firebaseio.com"//Change!! your database URL});constfirestore=admin.firestore();constsettings={timestampsInSnapshots:true};firestore.settings(settings);if(data&&(typeofdata==="object")){Object.keys(data).forEach(docKey=>{firestore.collection(collectionKey).doc(docKey).set(data[docKey]).then((res)=>{console.log("Document "+docKey+" successfully written!");}).catch((error)=>{console.error("Error writing document: ",error);});});}

Step4: 実行

node <Your_Project_Folder_Name>

すると
以下のように一括でインポートされました。
image.png

その他

nodeのバージョンが低いとスプレッド構文が対応していなかったり等あるので、バージョンが最新かどうか確認してください。

参考文献

How to upload data to Firebase Firestore Cloud Database


Viewing all articles
Browse latest Browse all 9233

Trending Articles