diff --git a/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/AuthServiceError.swift b/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/AuthServiceError.swift index aa8ec7e7f5..badbc98519 100644 --- a/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/AuthServiceError.swift +++ b/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/AuthServiceError.swift @@ -12,7 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. - import FirebaseAuth import SwiftUI diff --git a/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services/AuthService.swift b/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services/AuthService.swift index 0a656f2490..b124e69b29 100644 --- a/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services/AuthService.swift +++ b/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services/AuthService.swift @@ -296,16 +296,24 @@ public final class AuthService { } func sendEmailVerification() async throws { - if currentUser != nil { - do { - // TODO: - can use set user action code settings? - try await currentUser!.sendEmailVerification() - } catch { - errorMessage = string.localizedErrorMessage( - for: error - ) - throw error + do { + if let user = currentUser { + // Requires running on MainActor as passing to sendEmailVerification() which is non-isolated + let settings: ActionCodeSettings? = await MainActor.run { + configuration.verifyEmailActionCodeSettings + } + + if let settings = settings { + try await user.sendEmailVerification(with: settings) + } else { + try await user.sendEmailVerification() + } } + } catch { + errorMessage = string.localizedErrorMessage( + for: error + ) + throw error } } } diff --git a/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Views/UpdatePassword.swift b/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Views/UpdatePassword.swift index 7e9d1226d7..c1a43d422e 100644 --- a/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Views/UpdatePassword.swift +++ b/FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Views/UpdatePassword.swift @@ -19,6 +19,7 @@ // Created by Russell Wheatley on 24/04/2025. // +import FirebaseCore import SwiftUI private enum FocusableField: Hashable { @@ -94,3 +95,9 @@ extension UpdatePasswordView: View { } } } + +#Preview { + FirebaseOptions.dummyConfigurationForPreview() + return UpdatePasswordView() + .environment(AuthService()) +} diff --git a/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Views/SignInWithFacebookButton.swift b/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Views/SignInWithFacebookButton.swift index bd2f990e2d..6ddfc1d681 100644 --- a/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Views/SignInWithFacebookButton.swift +++ b/FirebaseSwiftUI/FirebaseFacebookSwiftUI/Sources/Views/SignInWithFacebookButton.swift @@ -42,7 +42,7 @@ public struct SignInWithFacebookButton { if trackingAuthorizationStatus == .authorized { self.limitedLogin = newValue } else { - self.limitedLogin = false + self.limitedLogin = true } } ) @@ -121,7 +121,6 @@ extension SignInWithFacebookButton: View { ) } } - Text(errorMessage).foregroundColor(.red) } }