0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【SwiftUI】Firebase Authenticationを導入して匿名認証ができるようにする

Last updated at Posted at 2025-05-04

はじめに

アプリ開発を行なっていく中で、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で匿名認証を有効化する

  • Firebase ConsoleのAuthenticationで、ログイン方法タブを選択し、「匿名」を選択
    スクリーンショット 2025-05-04 8.29.19.png
  • 匿名を有効にした状態で「保存」を選択
    スクリーンショット 2025-05-04 8.29.43.png

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 Consoleのユーザータブでも、ログイン状況が確認できる
    スクリーンショット 2025-05-04 8.31.33.png

まとめ

今回は、Firebase Authenticationの「匿名認証」を使って、ログイン不要でUIDを取得・表示する簡単なiOSアプリを作成しました。

匿名認証は、ユーザー登録の手間を省きながらも、ユーザーごとのデータを管理できる便利な仕組みです。たとえば「ゲストとして体験 → 気に入ったら会員登録」といったステップにも活用できます。

自分が開発したアプリでは、アプリ内でユーザーごとのデータを分離して保存する必要があったため、匿名認証を導入しました。これにより、個人情報を取得せずにユーザー単位でデータ管理ができるようになりました。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?