From 08ab410600a3c7ae5c0159328d4b88a6efb100c7 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Thu, 1 May 2025 15:32:57 +0100 Subject: [PATCH 1/7] question: how to make Views concrete? (i.e not use Any View) --- .../Sources/Services/AuthService.swift | 19 +++++++++++++++++-- .../Sources/Strings/Localizable.xcstrings | 3 +++ .../Sources/Views/AuthPickerView.swift | 2 +- .../Services/AuthService+Facebook.swift | 16 ++++++++++++++++ .../Services/FacebookProviderSwift.swift | 7 ++++--- .../Sources/Services/AuthService+Google.swift | 7 +++---- .../Services/GoogleProviderSwift.swift | 7 ++++--- .../Services/PhoneAuthProviderSwift.swift | 11 +++++------ Package.swift | 2 +- .../FirebaseSwiftUIExampleApp.swift | 6 ++---- 10 files changed, 56 insertions(+), 24 deletions(-) create mode 100644 FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/AuthService+Facebook.swift diff --git a/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services/AuthService.swift b/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services/AuthService.swift index fb54756762..6438bf21ad 100644 --- a/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services/AuthService.swift +++ b/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services/AuthService.swift @@ -2,8 +2,8 @@ import SwiftUI public protocol ExternalAuthProvider { - associatedtype ButtonType: View - @MainActor var authButton: ButtonType { get } + var id: String { get } + @MainActor func authButton() -> AnyView } public protocol GoogleProviderProtocol: ExternalAuthProvider { @@ -96,6 +96,21 @@ public final class AuthService { private var listenerManager: AuthListenerManager? private var signedInCredential: AuthCredential? + private var providers: [ExternalAuthProvider] = [] + public func register(provider: ExternalAuthProvider) { + providers.append(provider) + } + + public func renderButtons(spacing: CGFloat = 16) -> AnyView { + AnyView( + VStack(spacing: spacing) { + ForEach(providers, id: \.id) { provider in + provider.authButton() + } + } + ) + } + private var safeGoogleProvider: any GoogleProviderProtocol { get throws { guard let provider = googleProvider else { diff --git a/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Strings/Localizable.xcstrings b/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Strings/Localizable.xcstrings index b7e9918b39..55ffb43c9f 100644 --- a/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Strings/Localizable.xcstrings +++ b/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Strings/Localizable.xcstrings @@ -1047,6 +1047,9 @@ } } } + }, + "Update password" : { + }, "UpdateEmailAlertMessage" : { "comment" : "Alert action message shown before updating email action. Use short/abbreviated translation for 'email' which is less than 15 chars.", diff --git a/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Views/AuthPickerView.swift b/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Views/AuthPickerView.swift index 517149ce98..0d1d84fbac 100644 --- a/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Views/AuthPickerView.swift +++ b/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Views/AuthPickerView.swift @@ -28,7 +28,7 @@ extension AuthPickerView: View { Text(authService.authenticationFlow == .login ? "Login" : "Sign up") VStack { Divider() } EmailAuthView() - providerButtons() + authService.renderButtons() VStack { Divider() } HStack { Text(authService diff --git a/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/AuthService+Facebook.swift b/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/AuthService+Facebook.swift new file mode 100644 index 0000000000..bd3099e69b --- /dev/null +++ b/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/AuthService+Facebook.swift @@ -0,0 +1,16 @@ +// +// AuthService+Facebook.swift +// FirebaseUI +// +// Created by Russell Wheatley on 01/05/2025. +// + +import FirebaseAuthSwiftUI + +public extension AuthService { + @discardableResult + func withFacebookSignIn(scopes scopes: [String]? = nil) -> AuthService { + facebookProvider = FacebookProviderSwift(scopes: scopes) + return self + } +} diff --git a/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/FacebookProviderSwift.swift b/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/FacebookProviderSwift.swift index a7b3b503bd..14847579c4 100644 --- a/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/FacebookProviderSwift.swift +++ b/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/FacebookProviderSwift.swift @@ -22,6 +22,7 @@ public enum FacebookProviderError: Error { } public class FacebookProviderSwift: FacebookProviderProtocol { + public let id: String = "facebook" let scopes: [String] let shortName = "Facebook" let providerId = "facebook.com" @@ -34,9 +35,9 @@ public class FacebookProviderSwift: FacebookProviderProtocol { rawNonce = CommonUtils.randomNonce() shaNonce = CommonUtils.sha256Hash(of: rawNonce) } - - @MainActor public var authButton: SignInWithFacebookButton { - return SignInWithFacebookButton() + + @MainActor public func authButton() -> AnyView { + AnyView(SignInWithFacebookButton()) } @MainActor public func signInWithFacebook(isLimitedLogin: Bool) async throws -> AuthCredential { diff --git a/FirebaseSwiftUI/FirebaseGoogleSwiftUI/Sources/Services/AuthService+Google.swift b/FirebaseSwiftUI/FirebaseGoogleSwiftUI/Sources/Services/AuthService+Google.swift index eba43c5a31..b693e27fb1 100644 --- a/FirebaseSwiftUI/FirebaseGoogleSwiftUI/Sources/Services/AuthService+Google.swift +++ b/FirebaseSwiftUI/FirebaseGoogleSwiftUI/Sources/Services/AuthService+Google.swift @@ -8,12 +8,11 @@ import FirebaseAuthSwiftUI public extension AuthService { - @discardableResult - public func withGoogleSignIn() -> AuthService { + func withGoogleSignIn(scopes scopes: [String]? = nil) -> AuthService { let clientID = auth.app?.options.clientID ?? "" - self.googleProvider = GoogleProviderSwift(clientID: clientID) + googleProvider = GoogleProviderSwift(scopes: scopes, clientID: clientID) + register(provider: googleProvider!) return self } - } diff --git a/FirebaseSwiftUI/FirebaseGoogleSwiftUI/Sources/Services/GoogleProviderSwift.swift b/FirebaseSwiftUI/FirebaseGoogleSwiftUI/Sources/Services/GoogleProviderSwift.swift index eb74b1a534..1934f5ddc1 100644 --- a/FirebaseSwiftUI/FirebaseGoogleSwiftUI/Sources/Services/GoogleProviderSwift.swift +++ b/FirebaseSwiftUI/FirebaseGoogleSwiftUI/Sources/Services/GoogleProviderSwift.swift @@ -16,6 +16,7 @@ public enum GoogleProviderError: Error { } public class GoogleProviderSwift: @preconcurrency GoogleProviderProtocol { + public let id: String = "google" let scopes: [String] let shortName = "Google" let providerId = "google.com" @@ -25,12 +26,12 @@ public class GoogleProviderSwift: @preconcurrency GoogleProviderProtocol { self.clientID = clientID } - @MainActor public var authButton: GoogleSignInButton { - return GoogleSignInButton { + @MainActor public func authButton() -> AnyView { + AnyView(GoogleSignInButton { Task { try await self.signInWithGoogle(clientID: self.clientID) } - } + }) } @MainActor public func signInWithGoogle(clientID: String) async throws -> AuthCredential { diff --git a/FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services/PhoneAuthProviderSwift.swift b/FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services/PhoneAuthProviderSwift.swift index 28bb2ba5ad..220e4c97b0 100644 --- a/FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services/PhoneAuthProviderSwift.swift +++ b/FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services/PhoneAuthProviderSwift.swift @@ -5,13 +5,12 @@ import SwiftUI public typealias VerificationID = String public class PhoneAuthProviderSwift: @preconcurrency PhoneAuthProviderProtocol { - - public var authButton: Button { - // TODO: implement me - return Button("Phone", action: { }) - } - + public let id: String = "phone" public init() {} + + @MainActor public func authButton() -> AnyView { + AnyView(Text("phone button TODO")) + } @MainActor public func verifyPhoneNumber(phoneNumber: String) async throws -> VerificationID { return try await withCheckedThrowingContinuation { continuation in diff --git a/Package.swift b/Package.swift index c6b33ca343..cb9601d113 100644 --- a/Package.swift +++ b/Package.swift @@ -277,7 +277,7 @@ let package = Package( dependencies: [ "FirebaseAuthSwiftUI", "GoogleSignIn", - .product(name: "GoogleSignInSwift", package: "GoogleSignIn") + .product(name: "GoogleSignInSwift", package: "GoogleSignIn"), ], path: "FirebaseSwiftUI/FirebaseGoogleSwiftUI/Sources" ), diff --git a/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/FirebaseSwiftUIExampleApp.swift b/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/FirebaseSwiftUIExampleApp.swift index efc30d169a..aad1ca43ac 100644 --- a/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/FirebaseSwiftUIExampleApp.swift +++ b/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/FirebaseSwiftUIExampleApp.swift @@ -95,17 +95,15 @@ struct ContentView: View { let phoneAuthProvider = PhoneAuthProviderSwift() authService = AuthService( configuration: configuration, - googleProvider: nil, facebookProvider: facebookProvider, phoneAuthProvider: phoneAuthProvider ) - // Transition to this api - .withGoogleSignIn() + // Transition to this api + .withGoogleSignIn() } var body: some View { AuthPickerView { - SignInWithGoogleButton() SignInWithFacebookButton() PhoneAuthButtonView() }.environment(authService) From 2154d06e64419b6fc04f1dea12409f9c4637b1f2 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 9 May 2025 09:08:04 +0100 Subject: [PATCH 2/7] facebook rendering without button --- .../Sources/Services/AuthService+Facebook.swift | 3 ++- .../Sources/Services/FacebookProviderAuthUI.swift | 3 +-- .../FirebaseSwiftUIExample/ContentView.swift | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/AuthService+Facebook.swift b/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/AuthService+Facebook.swift index bd3099e69b..f2cd364da2 100644 --- a/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/AuthService+Facebook.swift +++ b/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/AuthService+Facebook.swift @@ -10,7 +10,8 @@ import FirebaseAuthSwiftUI public extension AuthService { @discardableResult func withFacebookSignIn(scopes scopes: [String]? = nil) -> AuthService { - facebookProvider = FacebookProviderSwift(scopes: scopes) + facebookProvider = FacebookProviderAuthUI(scopes: scopes) + register(provider: facebookProvider!) return self } } diff --git a/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/FacebookProviderAuthUI.swift b/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/FacebookProviderAuthUI.swift index c63f067095..46152a37b6 100644 --- a/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/FacebookProviderAuthUI.swift +++ b/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/FacebookProviderAuthUI.swift @@ -21,7 +21,6 @@ public enum FacebookProviderError: Error { case authenticationToken(String) } - public class FacebookProviderAuthUI: FacebookProviderAuthUIProtocol { public let id: String = "facebook" let scopes: [String] @@ -36,7 +35,7 @@ public class FacebookProviderAuthUI: FacebookProviderAuthUIProtocol { rawNonce = CommonUtils.randomNonce() shaNonce = CommonUtils.sha256Hash(of: rawNonce) } - + @MainActor public func authButton() -> AnyView { AnyView(SignInWithFacebookButton()) } diff --git a/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/ContentView.swift b/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/ContentView.swift index cab67f0367..221fea13fe 100644 --- a/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/ContentView.swift +++ b/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/ContentView.swift @@ -35,11 +35,11 @@ struct ContentView: View { phoneAuthProvider: phoneAuthProvider ) .withGoogleSignIn() + .withFacebookSignIn() } var body: some View { AuthPickerView { - SignInWithFacebookButton() PhoneAuthButtonView() }.environment(authService) } From 40ae462df7017f9e3c6802141e84424084f0aca3 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 9 May 2025 09:08:31 +0100 Subject: [PATCH 3/7] rm facebook provider from init --- .../FirebaseSwiftUIExample/ContentView.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/ContentView.swift b/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/ContentView.swift index 221fea13fe..8e75401a35 100644 --- a/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/ContentView.swift +++ b/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/ContentView.swift @@ -31,7 +31,6 @@ struct ContentView: View { let phoneAuthProvider = PhoneAuthProviderAuthUI() authService = AuthService( configuration: configuration, - facebookProvider: facebookProvider, phoneAuthProvider: phoneAuthProvider ) .withGoogleSignIn() From bc4099090a78ebaf90ab47d2c382e4b1a5043b74 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 9 May 2025 09:35:32 +0100 Subject: [PATCH 4/7] add facebook import --- .../FirebaseSwiftUIExample/ContentView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/ContentView.swift b/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/ContentView.swift index 8e75401a35..655d12d3d8 100644 --- a/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/ContentView.swift +++ b/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/ContentView.swift @@ -8,6 +8,7 @@ import FirebaseAuth import FirebaseAuthSwiftUI import FirebaseFacebookSwiftUI +import FirebaseGoogleSwiftUI import FirebasePhoneAuthSwiftUI import SwiftUI @@ -27,7 +28,6 @@ struct ContentView: View { shouldAutoUpgradeAnonymousUsers: true, emailLinkSignInActionCodeSettings: actionCodeSettings ) - let facebookProvider = FacebookProviderAuthUI() let phoneAuthProvider = PhoneAuthProviderAuthUI() authService = AuthService( configuration: configuration, From 00f6f00c129ffaaf4a960c06838d3bf277f96700 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 9 May 2025 09:35:39 +0100 Subject: [PATCH 5/7] format --- .../FirebaseAuthSwiftUI/Sources/Services/AuthService.swift | 2 +- .../Sources/Services/PhoneAuthProviderAuthUI.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services/AuthService.swift b/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services/AuthService.swift index 81c3ee91a9..649f80c689 100644 --- a/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services/AuthService.swift +++ b/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services/AuthService.swift @@ -2,7 +2,7 @@ import SwiftUI public protocol ExternalAuthProvider { - var id: String { get } + var id: String { get } @MainActor func authButton() -> AnyView } diff --git a/FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services/PhoneAuthProviderAuthUI.swift b/FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services/PhoneAuthProviderAuthUI.swift index 19f717cb4a..2d2b8b96f2 100644 --- a/FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services/PhoneAuthProviderAuthUI.swift +++ b/FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services/PhoneAuthProviderAuthUI.swift @@ -8,7 +8,7 @@ public class PhoneAuthProviderAuthUI: @preconcurrency PhoneAuthProviderAuthUIPro public let id: String = "phone" public init() {} - + @MainActor public func authButton() -> AnyView { AnyView(Text("phone button TODO")) } From 5a32a612a43d5691b6e24b5a4f09b76477d1a758 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 9 May 2025 09:44:20 +0100 Subject: [PATCH 6/7] phone auth provide init --- .../Sources/Services/AuthService+Phone.swift | 17 +++++++++++++++++ .../Services/PhoneAuthProviderAuthUI.swift | 4 +--- .../FirebaseSwiftUIExample/ContentView.swift | 5 ++--- .../FirebaseSwiftUIExampleApp.swift | 5 ----- 4 files changed, 20 insertions(+), 11 deletions(-) create mode 100644 FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services/AuthService+Phone.swift diff --git a/FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services/AuthService+Phone.swift b/FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services/AuthService+Phone.swift new file mode 100644 index 0000000000..2b8b34d77e --- /dev/null +++ b/FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services/AuthService+Phone.swift @@ -0,0 +1,17 @@ +// +// AuthService+Phone.swift +// FirebaseUI +// +// Created by Russell Wheatley on 09/05/2025. +// + +import FirebaseAuthSwiftUI + +public extension AuthService { + @discardableResult + func withPhoneSignIn() -> AuthService { + phoneAuthProvider = PhoneAuthProviderAuthUI() + register(provider: phoneAuthProvider!) + return self + } +} diff --git a/FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services/PhoneAuthProviderAuthUI.swift b/FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services/PhoneAuthProviderAuthUI.swift index 2d2b8b96f2..f8c92608a3 100644 --- a/FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services/PhoneAuthProviderAuthUI.swift +++ b/FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services/PhoneAuthProviderAuthUI.swift @@ -7,10 +7,8 @@ public typealias VerificationID = String public class PhoneAuthProviderAuthUI: @preconcurrency PhoneAuthProviderAuthUIProtocol { public let id: String = "phone" - public init() {} - @MainActor public func authButton() -> AnyView { - AnyView(Text("phone button TODO")) + AnyView(PhoneAuthButtonView()) } @MainActor public func verifyPhoneNumber(phoneNumber: String) async throws -> VerificationID { diff --git a/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/ContentView.swift b/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/ContentView.swift index 655d12d3d8..9547de0308 100644 --- a/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/ContentView.swift +++ b/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/ContentView.swift @@ -28,13 +28,12 @@ struct ContentView: View { shouldAutoUpgradeAnonymousUsers: true, emailLinkSignInActionCodeSettings: actionCodeSettings ) - let phoneAuthProvider = PhoneAuthProviderAuthUI() authService = AuthService( - configuration: configuration, - phoneAuthProvider: phoneAuthProvider + configuration: configuration ) .withGoogleSignIn() .withFacebookSignIn() + .withPhoneSignIn() } var body: some View { diff --git a/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/FirebaseSwiftUIExampleApp.swift b/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/FirebaseSwiftUIExampleApp.swift index a0ef1c7f1e..de3be36562 100644 --- a/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/FirebaseSwiftUIExampleApp.swift +++ b/samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/FirebaseSwiftUIExampleApp.swift @@ -7,10 +7,7 @@ import FacebookCore import FirebaseAuth import FirebaseCore -import FirebaseGoogleSwiftUI -import FirebasePhoneAuthSwiftUI import GoogleSignIn -import SwiftData import SwiftUI class AppDelegate: NSObject, UIApplicationDelegate { @@ -61,8 +58,6 @@ class AppDelegate: NSObject, UIApplicationDelegate { struct FirebaseSwiftUIExampleApp: App { @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate - init() {} - var body: some Scene { WindowGroup { NavigationView { From dcda464c226c86da42bebc4268a5a54be35da7bf Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Fri, 9 May 2025 09:58:18 +0100 Subject: [PATCH 7/7] rm provider config via auth service init --- .../Sources/Services/AuthService.swift | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services/AuthService.swift b/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services/AuthService.swift index 649f80c689..c26fed3635 100644 --- a/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services/AuthService.swift +++ b/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services/AuthService.swift @@ -65,15 +65,9 @@ private final class AuthListenerManager { @MainActor @Observable public final class AuthService { - public init(configuration: AuthConfiguration = AuthConfiguration(), auth: Auth = Auth.auth(), - googleProvider: (any GoogleProviderAuthUIProtocol)? = nil, - facebookProvider: (any FacebookProviderAuthUIProtocol)? = nil, - phoneAuthProvider: (any PhoneAuthProviderAuthUIProtocol)? = nil) { + public init(configuration: AuthConfiguration = AuthConfiguration(), auth: Auth = Auth.auth()) { self.auth = auth self.configuration = configuration - self.googleProvider = googleProvider - self.facebookProvider = facebookProvider - self.phoneAuthProvider = phoneAuthProvider string = StringUtils(bundle: configuration.customStringsBundle ?? Bundle.module) listenerManager = AuthListenerManager(auth: auth, authEnvironment: self) }