Firebase Realtime Database は、リアルタイムでデータの同期が可能なNoSQLクラウドデータベースです。このガイドでは、Firebaseの登録からデータ操作、セキュリティルール、クライアントサイドでのリッスンまでを解説します。
プロジェクトに Firebase を導入するには、以下のパッケージをインストールします。
1npm install firebase
次に、Firebaseを初期化するファイル(例:lib/firebase.ts
)を作成します。
1import { initializeApp } from 'firebase/app';
2import { getDatabase } from 'firebase/database';
3
4const firebaseConfig = {
5 apiKey: 'YOUR_API_KEY',
6 authDomain: 'YOUR_PROJECT_ID.firebaseapp.com',
7 databaseURL: 'https://YOUR_PROJECT_ID.firebaseio.com',
8 projectId: 'YOUR_PROJECT_ID',
9};
10
11const app = initializeApp(firebaseConfig);
12export const database = getDatabase(app);
13
例:全ユーザーが読み書きできるが、データ検証を行うルール
1{
2 "rules": {
3 ".read": true,
4 ".write": true,
5 "messages": {
6 "$messageId": {
7 ".validate": "newData.hasChildren(['text', 'user'])"
8 }
9 }
10 }
11}
12
1import { ref, push } from 'firebase/database';
2import { database } from './lib/firebase';
3
4const messagesRef = ref(database, 'messages');
5push(messagesRef, {
6 text: 'こんにちは',
7 user: 'user1',
8 createdAt: Date.now()
9});
10
1import { ref, update } from 'firebase/database';
2
3const messageRef = ref(database, 'messages/messageId123');
4update(messageRef, {
5 text: '更新されたメッセージ'
6});
7
1import { ref, remove } from 'firebase/database';
2
3const messageRef = ref(database, 'messages/messageId123');
4remove(messageRef);
5
リアルタイムにデータを監視するには、onValue
を使用します。
1import { ref, onValue } from 'firebase/database';
2
3const messagesRef = ref(database, 'messages');
4onValue(messagesRef, (snapshot) => {
5 const data = snapshot.val();
6 console.log(data);
7});
8
Firestore
も選択肢に