GASとCloud Firestoreを活用してスプレッドシートで管理できなくなったデータを効率的に管理しよう。
本記事では、Google Apps Script (GAS) と Google Firestore の連携方法、Firestore とスプレッドシートの違い、Firestore の認証情報 (JSON キー) の生成方法を解説しています。
この記事の対象の読者
スプレッドシートやエクセルでは扱いきれない大量のデータを扱うことになった人
Cloud Firestoreとは?スプレッドシートとFirestoreの比較
Firestore は、Googleが提供するデータベースの一種で、たくさんのデータを簡単に扱えるように作られています。データが増えても、速さや使いやすさが変わらない特徴があります。一方、スプレッドシートは、Excelのような表を作ってデータを管理するツールで、小さなデータやシンプルな計算に使うことが多いです。
つまり、Firestoreはたくさんのデータを効率的に扱うのに適していて、スプレッドシートは小さなデータを整理するのに適しています
全体の流れ
プロジェクトの作成と認証キーの生成
ライブラリの導入
GCP の Firestore にアクセスするための認証情報 (JSON キー) を生成する方法
Firestore にアクセスするためには、適切な認証情報が必要です。以下の手順で GCP の Firestore にアクセスするための認証情報 (JSON キー) を生成します。
- Google Cloud Console にアクセスし、ログインしてください。
- プロジェクトを選択するか、新しいプロジェクトを作成して Firestore を有効にします。
- 左側のナビゲーションメニューから「IAM と管理」をクリックし、「サービスアカウント」を選択します。
- 「サービスアカウント」ページで、「+ サービスアカウントを作成」ボタンをクリックします。
- サービスアカウント名と説明を入力し、「作成」ボタンをクリックします。
- 「役割を選択」ボックスで、Firestore に関連する権限を持つ役割を選択します。
例えば、「Cloud Firestore 編集者」や「Cloud Firestore ユーザー」などが適切です。役割を選択したら、「続行」ボタンをクリックします。 - 「キー」タブを選択し、「キーを追加」ボタンをクリックして、「JSON」を選択します。これにより、JSON 形式の認証情報が生成され、自動的にダウンロードされます。この JSON ファイルは、後で GAS プロジェクトに追加するので、安全な場所に保管しておいてください。
ライブラリの導入
GAS プロジェクトを作成し、FirestoreApp ライブラリを追加します。
以下のIDを入力してください。
バージョンは最新のものを選択しましょう。
ライブラリID:1VUSl4b1r1eoNcRWotZM3e87ygkxvXltOgyDZhixqncz9lQ3MjfT1iKFw
認証キーの入力
作成したGASに「FirestoreCredentials」といった名前を付け、ダウンロードした JSON キーの内容をオブジェクトリテラルとして貼り付けます。
const FirestoreCredentials = {
"type": "service_account",
"project_id": "your-project-id",
"private_key_id": "your-private-key-id",
"private_key": "-----BEGIN PRIVATE KEY-----\nYOUR-PRIVATE-KEY\n-----END PRIVATE KEY-----\n",
"client_email": "your-service-account-email",
"client_id": "your-client-id",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/your-service-account-email"
}
サンプルコード
- Firestore にデータを追加する
- Firestore からデータを取得する
- Firestore のデータを更新する
- Firestore のデータを削除する
// Firestoreライブラリの初期化
const firestore = FirestoreApp.getFirestore(firestoreCredentials.client_email, firestoreCredentials.private_key, firestoreCredentials.project_id);
// コレクション名とドキュメントIDを指定してデータを追加する
function addData() {
const data = {
'name': 'John Doe',
'age': 30
};
firestore.createDocument('users', 'user1', data);
}
// コレクション名とドキュメントIDを指定してデータを取得する
function getData() {
const userDoc = firestore.getDocument('users', 'user1');
console.log(userDoc);
}
// コレクション名とドキュメントIDを指定してデータを更新する
function updateData() {
const data = {
'age': 31
};
firestore.updateDocument('users', 'user1', data);
}
// コレクション名とドキュメントIDを指定してデータを削除する
function deleteData() {
firestore.deleteDocument('users', 'user1');
}
ディスカッション
コメント一覧
まだ、コメントがありません