スプレッドシートのデータをFirestoreに一括インポートする【GAS・2026年版】
個人開発でフロントエンドを作るとき、APIサーバーを毎回用意するのが面倒なので、スプレッドシートで管理しているデータをそのままFirestoreに流し込む方法を試しました。Google Apps Script(GAS)と FirestoreApp ライブラリを組み合わせると、追加のサーバーなしにスクリプトだけで一括インポートが完結します。
実装コードはGitHubで公開しています。
GitHub - isaka1022/import-to-firestore-from-spreadsheet-gas
Contribute to isaka1022/import-to-firestore-from-spreadsheet-gas development by creating an account on GitHub.
2026年時点の注意点: 以下で使用している
FirestoreAppライブラリはサードパーティ製で、Google公式ではありません。また、GASのライブラリ追加UIは変わっており、現在は「エディタ左サイドバー → ライブラリ(+ボタン)→ スクリプトID入力」の手順です。
FirestoreAppを使うかAdmin SDKを使うか
GASからFirestoreにアクセスする方法は大きく2つあります。
FirestoreApp(サードパーティ製GASライブラリ)を使う方法は、GASのエディタだけで完結するのが利点です。Node.jsやnpmの準備が不要なので、手元の環境を汚さずにサクッと試せます。一方で、非公式ライブラリなのでメンテナンス状況に依存する点はトレードオフです。
Firebase Admin SDK + Node.jsスクリプトを使う方法は、npmで firebase-admin をインストールしてローカルで実行します。こちらはGoogleが公式にサポートしているSDKで、長期的なプロジェクトや本番データの移行には向いています。データ量が多い場合もNode.jsのほうがメモリ制御がしやすいです。
プロトタイプや個人開発でサクッと動かしたい場合はFirestoreApp、本番運用に近い移行作業にはAdmin SDKが向いています。以下ではFirestoreAppを使った方法を解説します。
実装コード
function setDataToFireStore() {
var sheet = SpreadsheetApp.openById('<your-spread-sheet-id>').getSheetByName('<your-sheet-name>');
var certification = fireStoreCertification();
var firestore = FirestoreApp.getFirestore(certification.email, certification.key, certification.projectId);
try {
// ループ範囲はスプレッドシートの実際のデータ行数に合わせて変更してください
// 例: 2行目からデータが始まり54行目まであるなら i < 55
for (var i = 2; i < 55; i++) {
var titleValue = sheet.getRange(i, 1).getValue();
var newData = { title: titleValue };
firestore.createDocument('<your-firebase-collection-name>', newData);
}
} catch(e) {
Logger.log(e);
}
}
function fireStoreCertification() {
return {
"email": "<your-service-account>",
"key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----",
"projectId": "<your-project-id>"
};
}
秘密鍵(private_key)はコードに直書きせず、GAS のプロパティサービス(PropertiesService.getScriptProperties())などを使って安全に管理してください。
ループの終端値(i < 55)は自分のスプレッドシートの行数に合わせてください。ヘッダー行を除いてデータが2〜54行目にあるなら i < 55、100行目まであるなら i < 101 になります。
セットアップ手順
1. Firebaseプロジェクトとサービスアカウントの準備
Firebase Consoleでプロジェクトを作成し、Firestoreデータベースを作成します。「プロジェクトの設定 → サービスアカウント → 新しい秘密鍵の生成」でJSONファイルをダウンロードし、client_email・private_key・project_id の3つをコード内の fireStoreCertification 関数に転記します。
2. GASにFirestoreAppライブラリを追加
Google Apps Scriptエディタを開き、左サイドバーの「ライブラリ」右の「+」をクリックします。以下のスクリプトIDを入力して「検索」→ 最新バージョンを選択 → 「追加」します。識別子はデフォルトの FirestoreApp のままで問題ありません。
1VUSl4b1r1eoNcRWotZM3e87ygkxvXltOgyDZhixqncz9lQ3MjfT1iKFw
3. スプレッドシートIDとシート名を設定
スプレッドシートのURLに含まれる /d/ と /edit の間の文字列がスプレッドシートIDです。openById の引数にこのIDを、getSheetByName の引数にシート名(タブ名)を設定します。
4. 実行
GASエディタから setDataToFireStore 関数を選択して実行します。初回はGoogleアカウントの権限許可ダイアログが表示されるので、許可して進めてください。実行ログは「表示 → ログ」または Logger.log の出力で確認できます。
参考
Firestore Standard エディションを使ってみる | Firebase
Cloud Firestore を始めるためのガイド。データベースの作成、データの追加、データの読み取りの方法について説明します。
記事の更新をメールで受け取る
質問・リクエストを送る
記事についての質問や、取り上げてほしいテーマがあればお気軽にどうぞ。いただいた質問はブログ記事として回答し、Q&Aページで公開することがあります。