Firebase中的sendPasswordReset函数问题

dgsult0t  于 2023-11-21  发布在  其他
关注(0)|答案(1)|浏览(203)

我在iOS上有一个应用程序,当用户注册时(所以它的电子邮件和ID是在firebase认证用户)我用sendPasswordReset功能重置密码,它的工作很好,但如果我键入电子邮件,我没有在firebase功能仍然工作(我认为它应该抛出一个错误,“在firebase没有这样的帐户”)。请帮助我...
我在AuthManager中编写了这个函数,并将其传递给视图:

func resetPassword(email: String) async throws {
    do {
        try await auth.sendPasswordReset(withEmail: email)
    } catch {
        print("Throw an error")
        throw AuthErrorHandler.resetPasswordError
    }
}
@MainActor
final class PasswordRecoveryViewModel: ObservableObject {
    @Inject private var authenticationManager: AuthenticationManagerInterface
    @Published var email: String = ""
    
    func resetPassword() async throws {
        try validation()
        try await authenticationManager.resetPassword(email: email)
    }
    
    private func validation() throws {
        try Validation.validateField(email, fieldName: "email")
        try Validation.validateEmail(email: email)
    }
}
private var recoveryButton: some View {
    Button {
        Task {
            do {
                try await viewModel.resetPassword()
                print("password reset!")
                
                launchViewModel.showRecoveryView.toggle()
            } catch {
                self.launchViewModel.error = error
            }
        }
    } label: {
        Text("Recovery now!")
            .withMainButtonViewModifier()
    }
}
mutmk8jj

mutmk8jj1#

如果我输入电子邮件,我没有在firebase功能仍然工作(我认为它应该抛出一个错误,“在firebase没有这样的帐户”
在9月15日之后创建的Firebase项目上,默认情况下启用email enumeration protection设置。这会更改您从API返回的响应,使恶意用户无法使用这些API扫描您的项目,但不幸的是,也使您的用例无法使用。
更多关于这一点,请参阅我链接的文档和:

  • 我在Flutter应用程序中没有收到Firebase Auth的错误代码(我只收到INVALID_LOGIN_CREDENTIALS)
  • Flutter/Firebase验证与电子邮件和密码不按预期运行
  • iOS应用中的Firebase身份验证错误处理

相关问题