目的:CSVファイルをfirebaseにuploadしたい。

まずCSVをjsonデータ にする。
変換は、下記のサイトなどが便利

https://csvjson.com

ポイント! header行は追加すること

各カラムが何を示しているか を示す。jsonオブジェクトのkeyになる為

uploadするために、新規firebaseWEBアプリ作成

新規フォルダを作成し npm init (nodeはinstall されているものとします)

npm init

//firebaeをインストールする
npm install firebase-admin

Firebase consoleより ServiceAcountKeyをダウンロード

index.jsファイルの作成

const admin = require('./node_modules/firebase-admin');

//先程ダウンロードしたファイル
const serviceAccount = require("./serviceAccountKey.json");

//uploadしたい変換したjsonファイル
const data = require("./csvjson.json");

//自分がuploadしたいcollection名
const collectionKey = "coords"; 

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),

//DBの場所がus-central1の時   Iowa    DB_NAME.firebaseio.com
//DBの場所がeurope-west1    Belgium の時、DB_NAME.europe-west1.firebasedatabase.app
  databaseURL: "{APP_NAME}.firebaseio.com"
});
const firestore = admin.firestore();
const settings = { timestampsInSnapshots: true };
firestore.settings(settings);

if (data && (typeof data === "object")) {
  Object.keys(data).forEach(docKey => {
    console.log(docKey);


//doc()に引数を渡さないと、uuidを自動生成してくれる
    firestore.collection(collectionKey).doc().set(data[docKey]).then((res) => {
      console.log("Document " + docKey + " successfully written!");
    }).catch((error) => {
      console.error("Error writing document: ", error);
    });
  });
}

databaseURLの設定は公式サイトを参照

https://firebase.google.com/docs/projects/locations#rtdb-locations

完成後 node index.js を実行

$node index.js

//===
Document 114 successfully written!
Document 110 successfully written!
Document 123 successfully written!
Document 126 successfully written!
Document 188 successfully written!

完成後のFireStore

idにuuidも設定できました。 弊社は現在、測量くんWEBの開発に取り掛かっております。 引き続き、ご支援よろしくおねがいします。