Skip to content

Commit 1b14339

Browse files
refactor: add phone auth to deleteUser + put in same protocol
1 parent 7c0537f commit 1b14339

File tree

7 files changed

+14
-13
lines changed

7 files changed

+14
-13
lines changed

FirebaseSwiftUI/FirebaseAppleSwiftUI/Sources/Services/AppleProviderAuthUI.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ extension AuthenticateWithAppleDialog: ASAuthorizationControllerDelegate {
114114

115115
// MARK: - Apple Provider Swift
116116

117-
public class AppleProviderSwift: AuthProviderSwift, DeleteUserSwift {
117+
public class AppleProviderSwift: AuthProviderSwift {
118118
public let scopes: [ASAuthorization.Scope]
119119
let providerId = "apple.com"
120120

FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services/AuthService.swift

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import SwiftUI
1717

1818
public protocol AuthProviderSwift {
1919
@MainActor func createAuthCredential() async throws -> AuthCredential
20+
@MainActor func deleteUser(user: User) async throws
2021
}
2122

2223
public protocol AuthProviderUI {
@@ -25,10 +26,6 @@ public protocol AuthProviderUI {
2526
var provider: AuthProviderSwift { get }
2627
}
2728

28-
public protocol DeleteUserSwift {
29-
@MainActor func deleteUser(user: User) async throws
30-
}
31-
3229
public protocol PhoneAuthProviderSwift: AuthProviderSwift {
3330
@MainActor func verifyPhoneNumber(phoneNumber: String) async throws -> String
3431
}
@@ -282,13 +279,12 @@ public extension AuthService {
282279
let operation = EmailPasswordDeleteUserOperation(passwordPrompt: passwordPrompt)
283280
try await operation(on: user)
284281
} else {
285-
// Find provider by matching ID and ensure it can delete users
286-
guard let matchingProvider = providers.first(where: { $0.id == providerId }),
287-
let provider = matchingProvider.provider as? DeleteUserSwift else {
282+
// Find provider by matching ID
283+
guard let matchingProvider = providers.first(where: { $0.id == providerId }) else {
288284
throw AuthServiceError.providerNotFound("No provider found for \(providerId)")
289285
}
290286

291-
try await provider.deleteUser(user: user)
287+
try await matchingProvider.provider.deleteUser(user: user)
292288
}
293289
}
294290
} catch {

FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Services/FacebookProviderAuthUI.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import FirebaseAuth
1919
import FirebaseAuthSwiftUI
2020
import SwiftUI
2121

22-
public class FacebookProviderSwift: AuthProviderSwift, DeleteUserSwift {
22+
public class FacebookProviderSwift: AuthProviderSwift {
2323
let scopes: [String]
2424
let providerId = "facebook.com"
2525
private let loginManager = LoginManager()

FirebaseSwiftUI/FirebaseGoogleSwiftUI/Sources/Services/GoogleProviderAuthUI.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import GoogleSignIn
1919
import GoogleSignInSwift
2020
import SwiftUI
2121

22-
public class GoogleProviderSwift: AuthProviderSwift, DeleteUserSwift {
22+
public class GoogleProviderSwift: AuthProviderSwift {
2323
let scopes: [String]
2424
let clientID: String
2525
let providerId = "google.com"

FirebaseSwiftUI/FirebaseOAuthSwiftUI/Sources/Services/OAuthProviderSwift.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import FirebaseCore
1818
import SwiftUI
1919

2020
/// Configuration for a generic OAuth provider
21-
public class OAuthProviderSwift: AuthProviderSwift, DeleteUserSwift {
21+
public class OAuthProviderSwift: AuthProviderSwift {
2222
public let providerId: String
2323
public let scopes: [String]
2424
public let customParameters: [String: String]

FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services/PhoneAuthProviderAuthUI.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ public class PhoneProviderSwift: PhoneAuthProviderSwift {
6363
presentingViewController.present(hostingController, animated: true)
6464
}
6565
}
66+
67+
public func deleteUser(user: User) async throws {
68+
let operation = ProviderDeleteUserOperation(provider: self)
69+
try await operation(on: user)
70+
}
6671
}
6772

6873
public class PhoneAuthProviderAuthUI: AuthProviderUI {

FirebaseSwiftUI/FirebaseTwitterSwiftUI/Sources/Services/TwitterProviderAuthUI.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import FirebaseAuthSwiftUI
1717
import FirebaseCore
1818
import SwiftUI
1919

20-
public class TwitterProviderSwift: AuthProviderSwift, DeleteUserSwift {
20+
public class TwitterProviderSwift: AuthProviderSwift {
2121
public let scopes: [String]
2222
let providerId = "twitter.com"
2323

0 commit comments

Comments
 (0)