- Firebaseって名前は聞いたことあるけど、実際何ができるのか
- CocoaPodsじゃなくてSwift Package Managerで入れたい
- Dev環境と本番環境の切り替え方法は?
この章では「まずはFirebaseを使える状態にする」ところまで、ざっくりと学んでいく
そもそもFirebaseとは?
Firebase = Googleが提供してるモバイル向けバックエンドサービス群
iOSエンジニア的には、一旦これだけ覚えればOK:
機能 | できること |
---|---|
Authentication | ユーザーログイン(メール/Apple/Google etc) |
Firestore | クラウドNoSQLデータベース |
Cloud Storage | 画像/動画などのファイル保存 |
Cloud Functions | バックエンドロジック実行(Node.js) |
Crashlytics | クラッシュログ収集 |
Remote Config | アプリの設定をリモートで変更 |
Messaging | アプリの通知、InAppでポップアップモーダル表示 |
全部Swiftで使えるSDKが揃ってるし、無料枠でもかなり使える。
SPM(Swift Package Manager)でFirebaseをインストール
💡 手順:
Xcodeで、File > Add Package Dependencies…を選択

必要なモジュールだけ選択
FirebaseAuth
、FirebaseFirestore
とか、わからなければ一旦全部入れてOK

基本設定(GoogleService-Info.plist)
Firebase Consoleでプロジェクト作成して
- iOSアプリ登録(Bundle IDはXcodeと同じに)
GoogleService-Info.plist
をDLして、Xcodeプロジェクトにドラッグ&ドロップ
コンソール画面がこんな感じになっていればOK、左のリスト一覧でそれぞれのFirebase機能を設定できる。

⚠️ Git管理するならGoogleService-Info.plistはgitignoreに入れる
理由:
- APIKeyやその他認証情報が含まれているので乗っ取られるととてもよろしくない
- 誤って本番用を公開リポジトリにコミット→事故る可能性大
.gitignoreに↓を追加しておく
# Firebase
GoogleService-Info.plist
環境ごとの切り替え(Development / Staging / Production)
- Firebase Consoleでそれぞれの環境用にアプリを作る(3つのGoogleService-Info.plistをDL)
- ファイル名を分ける (
GoogleService-Info-Development.plist
,GoogleService-Info-Staging.plist
,GoogleService-Info-Production.plist
- Build Configurationごとにロードする処理を書く ↓
import Firebase
@main
struct YourApp: App {
init() {
let fileName: String
#if RELEASE
fileName = "GoogleService-Info-Production"
#elseif STAGING
fileName = "GoogleService-Info-Staging"
#else
fileName = "GoogleService-Info-Development"
#endif
if let path = Bundle.main.path(forResource: fileName, ofType: "plist"),
let options = FirebaseOptions(contentsOfFile: path) {
FirebaseApp.configure(options: options)
}
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
Development, Staging , Productionの環境設定自体はここで行う

.xcconfig
を使って環境変数を定義しておくと、CIでもビルドしやすくなる。(これはまた別の機会に)
一旦これで初期設定はOK、Command + Bを実行してコンパイルエラーがでなければ使えるようになります。
まとめ
- Firebaseは「AuthもDBも通知も全部できる」モバイル開発の味方
- SwiftPMで楽に導入できる
GoogleService-Info.plist
はgitに含めず、環境ごとに切り替える
次回から、実際に各Firebaseの機能を触っていきましょう。