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 キー) を生成します。

  1. Google Cloud Console にアクセスし、ログインしてください。
  2. プロジェクトを選択するか、新しいプロジェクトを作成して Firestore を有効にします。
  3. 左側のナビゲーションメニューから「IAM と管理」をクリックし、「サービスアカウント」を選択します。
  4. 「サービスアカウント」ページで、「+ サービスアカウントを作成」ボタンをクリックします。
  5. サービスアカウント名と説明を入力し、「作成」ボタンをクリックします。
  6. 「役割を選択」ボックスで、Firestore に関連する権限を持つ役割を選択します。
    例えば、「Cloud Firestore 編集者」や「Cloud Firestore ユーザー」などが適切です。役割を選択したら、「続行」ボタンをクリックします。
  7. 「キー」タブを選択し、「キーを追加」ボタンをクリックして、「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"
}

サンプルコード

  1. Firestore にデータを追加する
  2. Firestore からデータを取得する
  3. Firestore のデータを更新する
  4. 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');
}