firebase JavaScript

Node.jsを使用してFireStoreにcsvデータをコレクションに格納する

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

nao
さっそくやっていきましょう!

 

 

準備

このチュートリアルでは、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

 

 

-firebase, JavaScript