はじめに
アプリ開発を行なっていく中で、FirebaseのAuthenticationを使用して匿名認証を実装する方法を学んだので、備忘録として内容をまとめます。
この記事では、アプリを起動すると画面にUIDが表示されるサンプルアプリを元に解説します。
環境
【Xcode】16.2
【iOS】18.2
【macOS】Sequoia 15.3.1
【Firebase iOS SDK】 11.11.0
匿名認証とは
Firebase Authenticationが提供するログイン方法の1つで、メールアドレスやSNS連携などを使わず、ユーザーがアプリを起動した時点で自動的に一意のID(UID)を付与する仕組み。
ログイン処理は不要で、ゲストユーザーとしてすぐにアプリを使ってもらえるため、ユーザー登録のハードルを下げたい場合や、まずは匿名状態で使ってもらい、後で本登録(メール・Google認証など)につなげたいときに便利。
1. Firebaseプロジェクトを作成する
- Firebase Console にアクセス
- 「プロジェクトを作成」をクリック
- プロジェクト名を入力、Google AnalyticsはオフでもOK
- 「アプリを追加」でiOSアプリを選択
- Bundle IDを入力 (Xcodeの
Signing & Capabilities
で確認) -
GoogleService-Info.plist
をダウンロード、Xcodeプロジェクトに追加
2. Firebase SDK をXcodeに導入する
-
Xcodeメニューから「File > Add Package Dependencies...」を選択
-
パッケージURLに以下を入力
https://github.com/firebase/firebase-ios-sdk
-
バージョンは「Up to Next Major」でOK
-
必要なライブラリを追加(今回は下記の2つ)
- FirebaseCore
- FirebaseAuth
3. Firebase Consoleで匿名認証を有効化する
4. Firebaseをアプリ起動時に初期化する
- App構造体(App.swift)に下記を追加して、アプリ起動時にFirebaseを初期化するようにする
import SwiftUI
import Firebase
@main
struct FirebaseAuthTestApp: App {
init() {
FirebaseApp.configure()
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
5. 匿名ログインの処理を実装
import SwiftUI
import FirebaseAuth
struct ContentView: View {
@State private var userID: String = "ログイン中..."
var body: some View {
VStack(spacing: 20) {
Text("匿名ログインユーザーのUID:")
.font(.headline)
Text(userID)
.font(.footnote)
.foregroundColor(.gray)
}
.padding()
.onAppear {
signInAnonymously()
}
}
func signInAnonymously() {
Auth.auth().signInAnonymously { authResult, error in
if let error = error {
print("エラー: \(error.localizedDescription)")
userID = "ログイン失敗"
return
}
if let user = authResult?.user {
userID = user.uid
print("ログイン成功: \(user.uid)")
}
}
}
}
6. アプリをビルドして動作確認
- 実際にアプリを起動すると、以下のように画面にUIDが表示される
まとめ
今回は、Firebase Authenticationの「匿名認証」を使って、ログイン不要でUIDを取得・表示する簡単なiOSアプリを作成しました。
匿名認証は、ユーザー登録の手間を省きながらも、ユーザーごとのデータを管理できる便利な仕組みです。たとえば「ゲストとして体験 → 気に入ったら会員登録」といったステップにも活用できます。
自分が開発したアプリでは、アプリ内でユーザーごとのデータを分離して保存する必要があったため、匿名認証を導入しました。これにより、個人情報を取得せずにユーザー単位でデータ管理ができるようになりました。