如何在Firebase中更改电子邮件地址?

杰克里斯

我在Firebase身份验证中更改电子邮件地址时遇到一些问题。我的代码现在看起来像这样:

func changeEmail(withEmail email: String, completion: @escaping ((Bool) -> Void)) {
    guard let currentUser = Auth.auth().currentUser, let email = mail else { return }
    currentUser.updateEmail(to: email) { [weak self]
        error in
        guard let self = self else { return }
        let title: String
        let message: String
        if let error = error {
            title = "alert.error.title".localized()
            message = error.localizedDescription
        } else {
            title = email
            message = "auth.confirm.email.popup".localized()
            currentUser.sendEmailVerification()
        }
        self.navigator.showAlert(title: title,
                                 message: message,
                                 bottomLeftTitle: "general.got.it".localized(),
                                 bottomLeftHandler: { completion(error == nil)
        })
    }
}

这样很好,并且可以正常工作,并且用户实际上可以更改电子邮件。

但是,当用户停留时间太长并需要重新登录时,就会出现问题。每个人都知道这正在打扰应用程序的用户体验。

Auth.auth().reload() //not working in this situation.

那么,如何更改电子邮件而又不要求用户注销并再次登录?

西蒙

有一种reauthenticate专门用于此目的方法。https://firebase.google.com/docs/auth/ios/manage-users#re-authenticate_a_user

您需要做的是再次询问用户其登录凭据。无需注销-需要登录。

可能的代码:

if (self.newPassword == self.newPasswordConfirm) && (!(self.newPassword.isEmpty) || !(self.newUserName.isEmpty)) {
    reauthenticate(email: self.accountEmail, password: self.oldPassword) { isSucceeded in
        //Successfully authenticated
        if isSucceeded == true {
            if !self.newUserName.isEmpty {
                // update username
            }
            
            Auth.auth().currentUser?.updatePassword(to: self.newPassword) { (error) in
                // Alert user that it didn't work
            }
            
            self.editProfile.toggle()
        }
        // Failed to reauthenticate
        else if isSucceeded == false {
            // Alert User
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Go中验证电子邮件地址

来自分类Dev

如何在InAppSettingsKit中设置电子邮件地址?

来自分类Dev

您如何在Phabricator中更改用户的电子邮件地址

来自分类Dev

如何在MediaWiki中更改用户的电子邮件地址

来自分类Dev

如何更改Magento订单电子邮件地址格式?

来自分类Dev

如何更改Outlook电子邮件地址

来自分类Dev

如何在Outlook中更改我的IMAP电子邮件地址并保留我的所有电子邮件和文件夹?

来自分类Dev

在WordPress中更改bluehost电子邮件地址

来自分类Dev

如何使用Firebase电子邮件地址验证

来自分类Dev

如何在启动板上更改我的电子邮件地址?

来自分类Dev

如何在启动板上更改我的电子邮件地址?

来自分类Dev

如何从SMTP PHP Mailer函数sendmail()中的电子邮件地址更改

来自分类Dev

如何从电子邮件地址中检索姓名

来自分类Dev

如何隐藏电子邮件地址

来自分类Dev

如何隐藏电子邮件地址?

来自分类Dev

URL中的电子邮件地址

来自分类Dev

URL中的电子邮件地址

来自分类Dev

电子邮件地址中的大写

来自分类Dev

如何在CakePHP 1.3中验证电子邮件地址?

来自分类Dev

如何在电子邮件地址中编码特殊字符

来自分类Dev

如何在iOS中通过Twitter API获取用户电子邮件地址?

来自分类Dev

如何在文本输入HTML中添加多个电子邮件地址

来自分类Dev

如何在wp8中以编程方式获取主要或辅助电子邮件地址?

来自分类Dev

如何在电子邮件地址中的单词“ com”之前添加一个点?

来自分类Dev

如何在Salesforce文本字段中验证电子邮件地址?

来自分类Dev

Outlook:如何在收件箱中显示发件人电子邮件地址?

来自分类Dev

如何在文本输入HTML中添加多个电子邮件地址

来自分类Dev

如何在ASP.NET MVC 5中获取外部登录的电子邮件地址

来自分类Dev

如何在wp8中以编程方式获取主要或辅助电子邮件地址?

Related 相关文章

  1. 1

    如何在Go中验证电子邮件地址

  2. 2

    如何在InAppSettingsKit中设置电子邮件地址?

  3. 3

    您如何在Phabricator中更改用户的电子邮件地址

  4. 4

    如何在MediaWiki中更改用户的电子邮件地址

  5. 5

    如何更改Magento订单电子邮件地址格式?

  6. 6

    如何更改Outlook电子邮件地址

  7. 7

    如何在Outlook中更改我的IMAP电子邮件地址并保留我的所有电子邮件和文件夹?

  8. 8

    在WordPress中更改bluehost电子邮件地址

  9. 9

    如何使用Firebase电子邮件地址验证

  10. 10

    如何在启动板上更改我的电子邮件地址?

  11. 11

    如何在启动板上更改我的电子邮件地址?

  12. 12

    如何从SMTP PHP Mailer函数sendmail()中的电子邮件地址更改

  13. 13

    如何从电子邮件地址中检索姓名

  14. 14

    如何隐藏电子邮件地址

  15. 15

    如何隐藏电子邮件地址?

  16. 16

    URL中的电子邮件地址

  17. 17

    URL中的电子邮件地址

  18. 18

    电子邮件地址中的大写

  19. 19

    如何在CakePHP 1.3中验证电子邮件地址?

  20. 20

    如何在电子邮件地址中编码特殊字符

  21. 21

    如何在iOS中通过Twitter API获取用户电子邮件地址?

  22. 22

    如何在文本输入HTML中添加多个电子邮件地址

  23. 23

    如何在wp8中以编程方式获取主要或辅助电子邮件地址?

  24. 24

    如何在电子邮件地址中的单词“ com”之前添加一个点?

  25. 25

    如何在Salesforce文本字段中验证电子邮件地址?

  26. 26

    Outlook:如何在收件箱中显示发件人电子邮件地址?

  27. 27

    如何在文本输入HTML中添加多个电子邮件地址

  28. 28

    如何在ASP.NET MVC 5中获取外部登录的电子邮件地址

  29. 29

    如何在wp8中以编程方式获取主要或辅助电子邮件地址?

热门标签

归档