JS firestoreのプロジェクトからデータを取得する方法の整理
はじめに
最近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