Slide 1

Slide 1 text

Firebaseプロジェクトに 複数のFirestoreのデータベー スを作成する 2024.02.01

Slide 2

Slide 2 text

(C)PharmaX Inc. 2024 All Rights Reserve 2 自己紹介 X@hakotensan Akira Morooka 株式会社 PharmaX 薬局DX事業部 アプリケーションエンジニア 好きなもの: ボルダリング、漫画

Slide 3

Slide 3 text

3 (C)PharmaX Inc. 2024 All Rights Reserve 1つのFirebaseプロジェクトで、複数 のFirestoreを作れるようになりまし た!

Slide 4

Slide 4 text

(C)PharmaX Inc. 2024 All Rights Reserve 4 2023年に複数のFirestoreが作成できるように ※ 1 つのプロジェクトで複数の Firestore データベースを管理 https://cloud.google.com/blog/ja/products/databases/manage-multiple-firestore-databases-in-a-project

Slide 5

Slide 5 text

(C)PharmaX Inc. 2024 All Rights Reserve 5 FirebaseプロジェクトのFirestoreも対応 FirebaseプロジェクトのFirestoreも複数作成できます。

Slide 6

Slide 6 text

6 (C)PharmaX Inc. 2024 All Rights Reserve データベースの作り方

Slide 7

Slide 7 text

(C)PharmaX Inc. 2024 All Rights Reserve 7 firebase CLI or gcloud CLIで作成する firebase firestore:databases:create <データベースの名前> --location=<リージョン> (gcloud CLI) gcloud firestore databases create --database=<データベースの名前> --location=<リージョン> (firebase CLI) gcloud コマンドでも作成できますが、firebaseコマンドで作成するのがお すすめです。(後述する別用途でも使用するため)

Slide 8

Slide 8 text

(C)PharmaX Inc. 2024 All Rights Reserve 8 【注意】アクセスできないルールになっている (実行サンプル) 作成した時点ではクライアントからアクセスできない セキュリティルールが適用されています。

Slide 9

Slide 9 text

(C)PharmaX Inc. 2024 All Rights Reserve 9 【注意】アクセスできないルールになっている デフォルトではread, writeがfalseになっている

Slide 10

Slide 10 text

(C)PharmaX Inc. 2024 All Rights Reserve 10 【注意】Firebaseの無料プラン(Spark)では実行できない firestore:databases:create コマンドは、 Firebaseの無料プラン(Spark)では実行できないようです。 無料プランでエラーが発生した人は、従量課金のプラン(Blaze)にアップグ レードして試してください。

Slide 11

Slide 11 text

11 (C)PharmaX Inc. 2024 All Rights Reserve セキュリティルールを適用す る

Slide 12

Slide 12 text

(C)PharmaX Inc. 2024 All Rights Reserve 12 Firebase CLIを使って セキュリティルールを更新 作成したFirestoreのデータベースには、Firebase CLIを使ってセキュリ ティルールを適用できます。 npm install -g firebase-tools (インストール) firebase init (プロジェクトを初期化)

Slide 13

Slide 13 text

(C)PharmaX Inc. 2024 All Rights Reserve 13 { "firestore": { "rules": "firestore.rules", "indexes": "firestore.indexes.json" } } firebase.jsonを編集して、複数データベースに セキュリティルールを適用 { "firestore": [ { "database": "(default)", "rules": "firestore.rules", "indexes": "firestore.indexes.json" }, { "database": "<データベース名 >", "rules": "<ルールファイル >", "indexes": "<インデックスファイル >" } ] } (デフォルトの設定) (複数のfirestore用の設定) 作成したデータベースごとに別のセキュリティルールとインデックスファイ ルを適用できます。

Slide 14

Slide 14 text

(C)PharmaX Inc. 2024 All Rights Reserve 14 firebase CLI でデプロイ firebase deploy --only firestore (デプロイコマンド) firebase CLIでセキュリティルールとインデックスをまとめてデプロイでき ます。

Slide 15

Slide 15 text

15 (C)PharmaX Inc. 2024 All Rights Reserve 作成したデータベースに接 続する

Slide 16

Slide 16 text

(C)PharmaX Inc. 2024 All Rights Reserve 16 const firebaseConfig = { //... }; const app = initializeApp(firebaseConfig); const firestore = getFirestore(app, "<作成したデータベース名>"); FirebaseSDKでデータベースを指定して接続 (Javascript SDK) firestoreのインスタンス初期化時にデータベース名を指定すると接続先 を変更できます。(指定しないと”(default)”になる)

Slide 17

Slide 17 text

(C)PharmaX Inc. 2024 All Rights Reserve 17 運用方法の例 (Javascript SDKを使った例) 環境変数を指定した場合のみ、データベースの接続先を変える

Slide 18

Slide 18 text

18 (C)PharmaX Inc. 2024 All Rights Reserve まとめ

Slide 19

Slide 19 text

(C)PharmaX Inc. 2024 All Rights Reserve 19 複数のfirestoreを使うときのポイント 1. firebase CLI でfirestoreデータベースを作成する 2. firebase.jsonに新しく作成したデータベースのセキュリティルール を設定して、デプロイする 3. firebase SDKでインスタンス初期化時に、firebaseIDを指定する

Slide 20

Slide 20 text

20 (C)PharmaX Inc. 2024 All Rights Reserve PharmaXでの運用方法

Slide 21

Slide 21 text

(C)PharmaX Inc. 2024 All Rights Reserve 21 具体的な運用方法はzennの記事で紹介しています 「Firestoreの複数データベースを使って Firebaseプロ ジェクトローカル開発環境を作成する」

Slide 22

Slide 22 text

22 (C)PharmaX Inc. 2024 All Rights Reserve ありがとうございました!