【发布时间】:2020-06-29 19:32:04
【问题描述】:
当用户首次登录或注册用户并使用phone auth 时,它会说:
保存验证 ID 并在您的应用加载时恢复它。通过做 因此,如果您的 应用程序在用户完成登录流程之前终止(对于 例如,在切换到 SMS 应用时)。
我不确定保存它的目的是什么。
0- 用户打开应用程序并在登录屏幕上
1- 用户添加他们的电话号码(如下)
2- 回调收到authVerificationID
3- 在用户被带到 SMS 屏幕之前,应用程序以某种方式终止
4- 当用户再次打开应用程序时,因为他们还没有登录,他们又回到了登录屏幕。当他们再次输入他们的电话号码时,他们会收到一个全新的authVerificationID 或同一个(我不确定),然后他们会被带到 SMS 屏幕。无论哪种方式都是有效的,都会将它们带到 SMS 屏幕。
无论如何保存authVerificationID 会做什么,如果应用程序被终止,他们必须再次添加他们的电话号码,因为他们会回到登录屏幕?
如果答案是“c如果 authVerificationID 已保存,然后将它们带到 SMS 屏幕而不是登录屏幕”,那么这就是糟糕的用户体验。用户可能会在一个小时后回来,当他们第一次打开应用程序时,他们会看到 SMS 屏幕并感到困惑。
PhoneAuthProvider.provider().verifyPhoneNumber(phoneNumber, uiDelegate: nil) { (verificationID, error) in
guard let verificationID = verificationID else { return }
UserDefaults.standard.set(verificationID, forKey: "authVerificationID") // how does this help me?
// A. take user to sms view controller
// B. use authVerificationID && verificationCode for sms sign-in
}
【问题讨论】:
-
答案就是你所说的——如果用户在身份验证流程的中间离开你的应用程序,你可以立即将他们带回 SMS 屏幕。一旦用户离开您的应用程序,您无法保证该应用程序是否不会终止。这完全取决于操作系统,因此您的用户可能最终会陷入无法完成注册的循环(尽管不太可能)。至于糟糕的用户体验评论 - 这是非常主观的,而且非常依赖时间。
-
@NewDev 感谢您的帮助。如果您将此添加为答案,我将接受它。你是关于我的例子是主观的。如果他们马上回来,那就把他们带到短信屏幕上。如果他们稍后回来,那么我认为不会。为了方便起见,如果应用程序终止并且他们已经登录,我宁愿将他们带到登录屏幕。主观的????
-
你可以,但他们可能陷入无休止的循环
标签: ios swift firebase-authentication