我的应用中发生了一个错误。我怀疑它与慢速互联网连接有关,而且由于用户没有得到回复,他们会一直按下注册按钮。我将查看数据库,并查看同一个电子邮件的12个帐户同时注册。你们是怎么处理这个的?在Firebase登录/ createAccount方法完成之前,我有办法做一个微调器吗?
答案 0 :(得分:1)
首先将每个电子邮件地址的一个帐户更改为是。
当您的用户按下按钮创建帐户时,您需要触发 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 : .....
}}