📖

JS firestoreのプロジェクトからデータを取得する方法の整理

2022/09/27に公開

はじめに

最近firestoreを使用する機会が多かったので、データ取得関係について、
こちらに記しておきたいと思います。

Firestoreとは

Cloud Firestore は、Firebase と Google Cloud からのモバイル、ウェブ、サーバー開発に対応した、柔軟でスケーラブルなデータベースです。

Firestore公式より

元々あったRealtime Databaseから進化した、NoSQL型のデータベースです。
「複数データベースへの対応」 「柔軟なスケーラビリティ」が主な特徴です。

Firestoreのデータ構造について

Firestoreを触る上で大事なデータ構造や用語について記載します。

コレクション

配列やコンテナのようなもの。
Firestoreでは、多数のデータをひとまとめにして扱う。

ドキュメント

コレクションに保管されるデータの単位。
任意のキーが割り当てられ、その中に必要な情報を作成していく。

フィールド

ドキュメントに保存する値。データ。
フィールドの名前と値がセットで作成される。
(フィールドは、SQLでいうカラムみたいなもの)

サブコレクション

ドキュメント内のコレクションを指す。
コレクションとドキュメントが交互に入れることができる。
コレクションとドキュメントは常にこのパターンに従う必要がある。
コレクション内のコレクションや、ドキュメント内のドキュメントは参照できない。

Firestoreの中身


上記は、commentsコレクションの中にドキュメントがあり、そのドキュメントのフィールドに値が記載されているという基本的な格納の図です。

JSでデータを操作する際の記述

データの追加

db.collection("comments").doc("4AKYRXhvN3T0DKdJRJEF").set({
    name: "Cさん",
    text: "おはよう",
})

dbというfirestoreのインスタンスから、commentsコレクションの、"4AKYRXhvN3T0DKdJRJEF"のドキュメントを指定し、setでデータを追加/上書きしている。

データの削除

db.collection("comments").doc("4AKYRXhvN3T0DKdJRJEF").delete().then(() => {
    console.log("Document successfully deleted!");
}).catch((error) => {
    console.error("Error removing document: ", error);
});

setからdeleteに変えるのみ。
例外処理として、エラーが発生した際に、エラー分を表示することも基本である。

データの削除の注意点

コードでデータを削除する際、
collection > documents > collection > documents
上記のような構造の場合、左から2番目のdocumentsを削除することができない。
データを削除するときは、必ず末端のdocumentsから削除する必要がある。
(もしくは、Firestoreのコンソールであれば、上記のような削除方法は可能である。)

さいごに

Firestoreの基本的な操作方法について記載しました。
クライアントサーバーから、バックエンドサーバーを介さずに、データの操作ができることは、とても便利に感じます。
引き続き、インフラやBaaS(バックエンドサービス)などを使用して理解を深めていきたいと思います。

Discussion