Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What is going on with this article?
@From_F

FirebaseUIをSwiftUIで表示する

はじめに

Firebase Authenticationを使う上で簡単にSign-In画面を簡単に表示できるFirebaseUIを使うことはSign-In機能を使う上で開発効率をあげる上で重要だと考えています。
そこでSwiftUIを使ってFirbaseUIを表示する方法を考えました。
サンプルコードをGitHubで公開しています。

コードの解説

Cocoapodsの記述

pod 'FirebaseUI' と記述してもいいのですが、利用するSin-In方法を個別に指定することができます。
個別に指定することによってビルド時間の短縮が期待できます。
pod 'FirebaseUI/Auth'は必須です。注意が必要です。

podfileに記述する内容 内容 必須/任意
pod 'FirebaseUI/Auth' FirebaseUIのコア 必須
pod 'FirebaseUI/Google' Googleログイン 任意
pod 'FirebaseUI/Facebook' Facebookログイン 任意
pod 'FirebaseUI/OAuth' Sign in with Apple, Twitterなど 任意
pod 'FirebaseUI/Phone' 電話番号 任意

FirebaseUIを表示するView

UIKit系のFirebaseUIを表示するために、UIViewControllerRepresentableを利用して表示します。
サンプルコードでは、FirebaseUIView.swiftに記述しました。

基本的にはリファレンスマニュアル通りの実装内容となっています。

また、Sign in with Appleが最近のFirebaseUIでも利用可能になっています。authUI.providersのArrayリストにFUIOAuth.appleAuthProvider()を追加する必要があります。

        // サポートするログイン方法を構成
        let providers: [FUIAuthProvider] = [
            FUIGoogleAuth(), //Googleログイン
            FUIFacebookAuth(), //Facebookログイン 
            FUITwitterAuth(), //Twitter
            FUIPhoneAuth(authUI:FUIAuth.defaultAuthUI()), //電話番号
            FUIOAuth.appleAuthProvider(), //Sign in with Apple
        ]
        authUI.providers = providers

SignIn状態の管理

SignIn状態を管理し表示をコントロールするためにObservableObjectを使っています。
FirebaseAuthStateManagerと命名しました。(ネーミングセンスが悪くてすみません)
コードはリファレンスマニュアル-認証状態をリッスンするを参考にしました。

最後に

FirebaseUIの実装例が少ないと感じています。
リファレンスマニュアル通りといえばそうですが、サンプルプロジェクトがあると便利かと思い作成しました。
参考になれば幸いです。

3
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
From_F
iOSアプリやArduinoを使って色々作っています。
code-candy
アプリ開発特化オンラインスクール「CodeCandy」です。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
3
Help us understand the problem. What is going on with this article?