Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

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

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

【Firebase】GDG Tokyo Monthly Online Tech Talks 2/1 の発表資料です。

Firebaseプロジェクトで複数のFirestoreのデータベースを作成する方法について書いています!

以下の記事で詳細な運用方法なども紹介しています。よろしければ一読ください!

https://zenn.dev/pharmax/articles/0a5cf60d6d6397

More Decks by PharmaX(旧YOJO Technologies)開発チーム

Transcript

  1. (C)PharmaX Inc. 2024 All Rights Reserve 2 自己紹介 X@hakotensan Akira

    Morooka 株式会社 PharmaX 薬局DX事業部 アプリケーションエンジニア 好きなもの: ボルダリング、漫画
  2. (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
  3. (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コマンドで作成するのがお すすめです。(後述する別用途でも使用するため)
  4. (C)PharmaX Inc. 2024 All Rights Reserve 10 【注意】Firebaseの無料プラン(Spark)では実行できない firestore:databases:create コマンドは、

    Firebaseの無料プラン(Spark)では実行できないようです。 無料プランでエラーが発生した人は、従量課金のプラン(Blaze)にアップグ レードして試してください。
  5. (C)PharmaX Inc. 2024 All Rights Reserve 12 Firebase CLIを使って セキュリティルールを更新

    作成したFirestoreのデータベースには、Firebase CLIを使ってセキュリ ティルールを適用できます。 npm install -g firebase-tools (インストール) firebase init (プロジェクトを初期化)
  6. (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用の設定) 作成したデータベースごとに別のセキュリティルールとインデックスファイ ルを適用できます。
  7. (C)PharmaX Inc. 2024 All Rights Reserve 14 firebase CLI でデプロイ

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

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

    環境変数を指定した場合のみ、データベースの接続先を変える
  10. (C)PharmaX Inc. 2024 All Rights Reserve 19 複数のfirestoreを使うときのポイント 1. firebase

    CLI でfirestoreデータベースを作成する 2. firebase.jsonに新しく作成したデータベースのセキュリティルール を設定して、デプロイする 3. firebase SDKでインスタンス初期化時に、firebaseIDを指定する