18
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

FirebaseのProjectをstaging, productionで分けるときの指針

Posted at

Firebaseのstagingとproductionの切り分けには大きく分けて2通りのアプローチがある

  1. 1project内にproduction / staging向きアプリを登録する
  2. project自体を分ける

必須でprojectを分けるパターン

  • Cloud Firestoreを利用する場合
  • Cloud Functionsを利用する場合
  • Storageを利用する場合
  • Hostingに静的サイトを構築する場合

上記の機能は、1projectに1つの環境しか作れないので、projectを分ける必要がある
それぞれローカルで作業して、Firebase CLIやCIを経由でデプロイするフローを踏むことになるので、運用的にもproject自体を分けることになる

CLIで環境の切り替え方:
https://firebase.google.com/docs/cli?hl=ja#project_aliases

必須じゃないけど分けた方がいいパターン

Authentication, Remote Config, FCMなど本番ユーザーに影響しかねない設定を触る場合

  • Remote Configのキー名を hogehoge_stg のように運用で分けても良いが、同じprojectに本番・ステージの環境変数が乗っかっているのは事故の元になる
  • FCMも、ターゲットのアプリを慎重に切り替えれば良いが人的ミスの温床になる
  • Authenticationも言わずもがな

ユーザー数が少ない状態でAnalyticsを頻繁にウォッチする場合

たとえアナリティクスだけしか使わない(予定)のアプリだとしても、
ダッシュボードで毎回、productionのアプリにフィルタをかけないと調査データが濁るので、ユーザー数が少ないアプリは注意が必要。
これを毎回やるくらいならprojectを分けた方がいい

image.png

結論

将来的に分ける場合、移行が面倒だったりするので少しでもFirebaseを利用するなら最初から分けたら良いと思う
そして、productionの環境を編集できる人は権限を厳密に管理すれば事故りにくい

宣伝

フルFirebaseで実装した個人アプリをリリースしました!! :rocket:

App Store📱

下記の機能をフル活用したアプリです。
家族・カップルのタスク管理にお困りの方、是非使ってみてください

  • Analytics
  • Authentication
  • Crashlytics
  • Firestore
  • Storage
  • Cloud Messaging
  • In-App Messaging
  • Storage
  • Remote Config
  • Dynamic Links
store_1.png
18
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?