Blog

firebase CSVファイル アップロード

目的: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の開発に取り掛かっております。 引き続き、ご支援よろしくおねがいします。


一つ前の記事 チームで物事を決めるときに考えること
次の記事 Could not cast value of type 'UINavigationController' エラーの原因について