22import SwiftUI
33
44public protocol ExternalAuthProvider {
5- @MainActor var authButton : any View { get }
5+ associatedtype ButtonType : View
6+ @MainActor var authButton : ButtonType { get }
67}
78
89public protocol GoogleProviderProtocol : ExternalAuthProvider {
@@ -64,9 +65,9 @@ private final class AuthListenerManager {
6465@Observable
6566public final class AuthService {
6667 public init ( configuration: AuthConfiguration = AuthConfiguration ( ) , auth: Auth = Auth . auth ( ) ,
67- googleProvider: GoogleProviderProtocol ? = nil ,
68- facebookProvider: FacebookProviderProtocol ? = nil ,
69- phoneAuthProvider: PhoneAuthProviderProtocol ? = nil ) {
68+ googleProvider: ( any GoogleProviderProtocol ) ? = nil ,
69+ facebookProvider: ( any FacebookProviderProtocol ) ? = nil ,
70+ phoneAuthProvider: ( any PhoneAuthProviderProtocol ) ? = nil ) {
7071 self . auth = auth
7172 self . configuration = configuration
7273 self . googleProvider = googleProvider
@@ -87,14 +88,14 @@ public final class AuthService {
8788 public var errorMessage = " "
8889 public let passwordPrompt : PasswordPromptCoordinator = . init( )
8990
90- public var googleProvider : GoogleProviderProtocol ?
91- public var facebookProvider : FacebookProviderProtocol ?
92- public var phoneAuthProvider : PhoneAuthProviderProtocol ?
91+ public var googleProvider : ( any GoogleProviderProtocol ) ?
92+ public var facebookProvider : ( any FacebookProviderProtocol ) ?
93+ public var phoneAuthProvider : ( any PhoneAuthProviderProtocol ) ?
9394
9495 private var listenerManager : AuthListenerManager ?
9596 private var signedInCredential : AuthCredential ?
9697
97- private var safeGoogleProvider : GoogleProviderProtocol {
98+ private var safeGoogleProvider : any GoogleProviderProtocol {
9899 get throws {
99100 guard let provider = googleProvider else {
100101 throw AuthServiceError
@@ -104,7 +105,7 @@ public final class AuthService {
104105 }
105106 }
106107
107- private var safeFacebookProvider : FacebookProviderProtocol {
108+ private var safeFacebookProvider : any FacebookProviderProtocol {
108109 get throws {
109110 guard let provider = facebookProvider else {
110111 throw AuthServiceError
@@ -114,7 +115,7 @@ public final class AuthService {
114115 }
115116 }
116117
117- private var safePhoneAuthProvider : PhoneAuthProviderProtocol {
118+ private var safePhoneAuthProvider : any PhoneAuthProviderProtocol {
118119 get throws {
119120 guard let provider = phoneAuthProvider else {
120121 throw AuthServiceError
0 commit comments