ios - 当我将它设置为每封电子邮件一个时,Firebase 创建多个帐户

标签 ios swift firebase firebase-realtime-database firebase-authentication

我的应用程序中出现错误。我怀疑这与互联网连接速度慢有关,并且由于用户没有得到响应,他们一直在点击注册按钮。我会去查看数据库,发现同一封电子邮件有 12 个帐户同时注册。你们是怎么处理的?在 Firebase 登录/createAccount 方法完成之前,有什么方法可以做微调器吗?

最佳答案

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

当您的用户按下按钮创建帐户时,您需要触发 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 : .....

        }}

关于ios - 当我将它设置为每封电子邮件一个时,Firebase 创建多个帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40274014/

相关文章:

ios - 当数据库字典位于另一个 View Controller 中时,如何将图像 URL 添加到 firebase 数据库

javascript - 将字段单独添加到 firestore 文档

android - 缺少 Google Play 服务

ios - UIImage 中的编码字符串返回 null

ios - 无法在 iOS 9 上验证应用程序

ios - 动画 subview AutoLayout 约束更改

xcode - 为什么没有设置 Swift 编译器标志?

ios - 在自定义 UITableViewCell 中消除 UITextField 的问题

ios - 无法从内存堆栈中释放手势识别器

android - 错误: Please fix the version conflict