CSVファイルはデータ交換の際によく使われる形式です。この記事では、Node.jsを使用してCSVファイルの内容をFireStoreにコレクションとして格納する方法を紹介します。これにより、FireStoreをバックエンドとしたアプリケーションで、CSVデータを簡単に利用できるようになります。

目次
準備
このチュートリアルでは、Node.jsとnpmがインストール済みであることを前提としています。また、Firebaseプロジェクトも作成済みであることが必要です。
CSVファイルの内容をJSONデータに変換
このサイトから CSVデータをJsonに変換します。
FirebaseコンソールからKeyをダウンロード
Firebaseコンソールにて「新しい秘密鍵を生成」→Keyを入手します。
作業用ディレクトリの作成
ディレクトリ名はなんでもいいですが作成し終えたら
先ほど取得したKeyとJsonファイルを同じディレクトリに置きます。
Keyの名前をserviceAccountKey.json、Jsonファイルをcsv.jsonにリネームしてください。
その後 npm init を入力してその後は対話形式になるのでEnterを押して
最後にyesを入力します。
パッケージのインストール
まずは、必要なパッケージをインストールしましょう。firebase-admin
はFirebaseプロジェクトにアクセスするために使用します。
command
npm install firebase-admin
index.jsの作成
先ほど作成したディレクトリと同じ階層にindex.jsを作成し中身を以下のようにしてください。
databaseURLのhttps://app-284bb.firebaseio.comの部分は
Cloud Firestoreから確認できて
collectionKeyはどんな名前でコレクションを保存したいかです。
html
const admin = require("./node_modules/firebase-admin");
const serviceAccount = require("./serviceAccountKey.json");
const data = require("./csv.json");
const collectionKey = "today_data"; //name of the collection
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://app-284bb.firebaseio.com",
});
const firestore = admin.firestore();
const settings = { timestampsInSnapshots: true };
firestore.settings(settings);
if (data && typeof data === "object") {
Object.keys(data).forEach((res) => {
firestore
.collection(collectionKey)
.doc()
.set(data[res])
.then((res) => {
console.log("Document " + restaurantName + " successfully written!");
})
.catch((error) => {
console.error("Error writing document: ", error);
});
});
}
データ保存を実行
以下のコマンドで実行することができます。
html
node index.js