0

我的应用出现了一个错误。我怀疑它与缓慢的互联网连接有关,并且由于用户没有得到响应,他们继续按下注册按钮。我会去查看数据库,并看到同一个电子邮件的12个帐户同时注册。你们如何处理这个问题?在Firebase登录/ createAccount方法完成之前,有什么方法可以使用微调吗?当我将它设置为每个邮件一个邮箱时,Firebase创建多个帐户

+0

默认情况下,应该强制执行每个电子邮件地址的一个帐户。你改变了那个设置吗?它可以通过“身份验证/登录方法”下的控制台访问(在“高级”下方的底部)。 – cartant

+0

@cartant是的,我有那套。这是一个错误:/所以我想我会有一个微调点击注册按钮,以防止用户混淆它 –

回答

1

首先将每个电子邮件地址的一个帐户更改为为yes。

当用户按下按钮,创建一个帐户,您需要触发createUser,但你需要禁用按钮本身,以避免与同一细节

func createMyUser(sender:UIButton!){ 

sender.isEnabled = false 
FIRAuth.auth()?.createUser(withEmail: emailTextField.text!, password: passwordTextField.text!, completion: { (user, err) in 
    .... 
    } 
同一用户的进一步调用之前

现在如果您遇到任何错误,即使网络错误处理与errorCodeNetworkError错误。并向用户显示警报,指出发生了网络错误。

if let firebaseError = FIRAuthErrorCode(rawValue: err!._code) { 

        switch firebaseError{ 

        case .errorCodeEmailAlreadyInUse : sender.isEnabled = true 
                 break 

        case .errorCodeNetworkError :  print("Network Error occured!") 

                 sender.isEnabled = true 
                 break 
        default : ..... 

     }} 
+0

非常翔实,没有想到这一点。谢谢。对于任何绊倒这个的人,我还通过使用SwiftSpinner框架抛出一个美丽的微调来添加到这个框架中,该框架在createUser完成时隐藏 –

相关问题