gpt4 book ai didi

iOS - Firebase 授权/使用电子邮件登录

转载 作者:搜寻专家 更新时间:2023-11-01 06:37:53 25 4
gpt4 key购买 nike

我在 Firebase 中看到了很多关于授权的问题,但没有一个有帮助(授权方式有点不同)。我在 iOS 开发方面经验不足,因此我不仅需要代码方面的帮助,还需要用户体验方面的帮助。下面是我的代码:

func loginDidFinish(email: String, password: String, type: LFLoginController.SendType) {

// Server call implementation here
if type == .Login {
if user.exists { // check if user exists
FIRAuth.auth()?.signInWithEmail(email, password: password, completion: {
navigationController?.popViewControllerAnimated(true)
})
} else {
self.controller.wrongInfoShake()
}
} else { // type == .SignUp
if user.exists { // check if user exists
FIRAuth.auth()?.signInWithEmail(email, password: password, completion: { (user, error) in
//
})
} else {
FIRAuth.auth()?.createUserWithEmail(email, password: password, completion: { (user, error) in
//
})
}
}

print(email)
print(password)
print(type)

// handling errors
if email == "" && password == "" {
controller.wrongInfoShake()
} else {
navigationController?.popViewControllerAnimated(true)
}
}

这是我的登录功能。首先,我使用了来自 here 的登录页面框架(是的,我懒得自己做) .我使用 Firebase 作为后端服务器来存储这些帐户。

现在,我不知道如何检查用户是否已经存在于系统中。此外,如果发生任何错误,LFLoginController 库会提供名为 wrongInfoShake() 的函数,每次发生错误时我都会使用它,但我不确定我是否应该提供出错的描述(意味着呈现 AlertControl)(顺便说一句,这是 UX 问题)。

当类型更改为 SignUp 时,即使用户使用 SignUp 类型,当用户键入已经存在的电子邮件和密码以使用该信息登录时是否可以?

当 SignUp 继续时,我应该处理任何错误吗?

最佳答案

你在这里有一些问题,我会尽力回答所有问题:

  1. 检查用户是否已存在的最佳方法是在 signInWithEmail()createUserWithEmail()completionBlock 中,如果发生错误,您知道这可能是其中一种情况。如果您仍想为此使用一个方法,可以调用一个名为 fetchProvidersForEmail() 的 API 新调用,它会返回一个提供程序数组,在​​您的例子中是电子邮件。

  2. 不要为此使用警报 Controller ,那样会过度使用,只显示一个错误标签,说明 Login was incorrect,或者 An error occurred ,或任何您想显示的错误。除非真的需要,否则尽量避免警报。

  3. 用户已经习惯了在尝试使用他的电子邮件注册时收到用户已存在的错误,从用户体验的角度来看,这会像他一样引发一些错误把它想象成一个清晰的新帐户,所以不,只是显示一个标签说明该用户存在,其他人已经使用他的电子邮件注册的可能性很小。

  4. 注册时,firebase 会报错E-mail already exists,就像我在第 3 点提到的,如果 e-mail 处理错误,它也可以给出 无效的电子邮件。这个错误和所有其他错误都应该通过向用户显示一些消息来处理,否则他会感到困惑。要处理它们,只需检查 completion 中的错误即可。

关于iOS - Firebase 授权/使用电子邮件登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39337185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com