はじめに
アプリエンジニアの@daisuke0131と申します。
qiita投稿久しぶりで緊張しています。
この記事は、Firebase Advent Calendar 2018 9日目の記事になります。
前回の記事は、@takuchalleさんのFirebase Hosting で自動で古いバージョンを削除する(今のところ)最善の方法でした。私はまだFirebase Hosting触っていないですが今度使ってみようと思います。
私は、本業ではアプリ開発(ios/android)をメインでやっているエンジニアです。アプリエンジニアの為のFirestore入門本、基礎から実施までCloud FirestoreによるiOSアプリ開発を執筆したので興味ある方は是非買ってください!一冊手元に置いておくと便利だと思います。
書籍を色々な方達に読んでもらったのですが、全体的には分かりやすいというフィードバックをもらっています。アプリ開発も楽しいですが、執筆も楽しいですね。分かりやすい入門書を書くことでCloud Firestoreの普及に貢献できれば嬉しいです。
今回は、フィードバックの中で追記して欲しいと要望のあったiOSアプリ開発時の本番と開発環境の用意方法に関する記事を書きたいと思っております。一般的なFirestoreのセットアップに関する詳細は書籍を参照してください。
Firebaseとクライアント環境の本番と開発環境の用意
Firebaseのプロジェクトですが、以下にアクセスして
https://console.firebase.google.com/
本番用と開発用のプロジェクトをそれぞれ作成します。
通常プロジェクト作成後は、iOSアプリを作成するボタンよりGoogleService-Info.plistを取得してクライアント側のiOSプロジェクト内に配置して、次の初期化処理を呼び出すことでFirebaseのクライアント側セットアップが完了します。
FirebaseApp.configure()
引数なしのconfigureを呼び出すことでFirebase SDKは"GoogleService-Info.plist"を探して初期化を完了させます。
今回は、本番用と開発用のプロジェクトを分けたいので、開発用のプロジェクトで作成したplistを"GoogleService-develop-Info"として用意します。iOSアプリ開発では、プリプロセッサマクロのDEBUGオプションで本番、開発環境を分けることが多いと思いますのでそちらを使用してplistの読み込み先を変更します。コードにすると次のようになります。
#if DEBUG
let filePath = Bundle.main.path(forResource: "GoogleService-develop-Info", ofType:"plist")
#else
let filePath = Bundle.main.path(forResource: "GoogleService-Info", ofType:"plist")
#endif
let options = FirebaseOptions(contentsOfFile:filePath!)
FirebaseApp.configure(options: options!)
Firebaseとクライアント側の環境の分け方は以上で完了です。
Firebase CLIの本番と開発環境の用意
次にFirebase CLI環境の本番と開発環境の用意方法についてです。
Firebase CLIはFirebase上のセキュリティルール、インデックス、Cloud Functionsなどのデプロイを簡易にするツールのことです。開発環境は次のinitコマンドを実行することで作成されます。
$firebase init
初期化コマンド実行後には.firebasercが生成されています。
{
"projects": {
"default": "firestoresample-xxxx"
}
}
こちらのファイルを次のように書き換えることで本番(release)と開発(develop)環境を切り替えられるようになります。yourapp-production,yourapp-developはfirebaseのプロジェクトIDをそれぞれ設定してください。
{
"projects": {
"release": "yourapp-production", #本番環境
"develop": "yourapp-develop" #開発環境
}
}
上記の設定をしたあとに次のようにuseコマンドを実行することで本番、開発環境の切り替えが可能になります。
$ firebase use develop #開発環境に切り替える
Now using alias develop (yourapp-develop)
$ firebase use release #本番環境に切り替える
Now using alias release (yourapp-production)
以上でfirebase CLIで作成したコードを本番、開発環境で切り替えられる環境が作成できました。とっても簡単ですね。firebase、だぁーいすき!(ハズ◯ルーペ風)
#おわりに
書籍の執筆後に開発環境について聞かれることが多かったので、Advent Calendarの締め切りを利用して記事にさせてもらいました。Firestoreの勉強を初めて本番運用まで考え始めた段階で疑問になるところだと思うのでどなたかのお役に立てれば幸いです。こちらの内容は、Boothで販売中の基礎から実施までCloud FirestoreによるiOSアプリ開発にも加筆してアップデートしたいと思っています。
明日は、@gremitoさんのFirebaseとUnityについて何かです。よろしくお願い致します。