当用户在我的应用中注册时,会弹出一个说明,请验证您的电子邮件然后登录。当用户单击“确定”时,它将使用户登录页面。此时,用户应转到Mail应用程序(iPhone),然后单击从Firebase发送给他们的链接。点击此链接当前打开Safari并告诉用户帐户已经过验证,然后用户必须手动返回应用程序。如何验证用户并将其带回应用程序?
我已经阅读了有关continueURL以及Firebase提供的文档,但它没有任何意义,我对我需要做的事情感到困惑。如果有人可以解释如何做到这一点,那就更简单了,非常感激。
这就是我发送电子邮件的方式:user?.sendEmailVerification(completion:nil)
提前感谢您的帮助!
答案 0 :(得分:3)
您可以让链接直接转到iOS应用,但可以通过将git branch
设置为handleCodeInApp
来处理应用中的代码。为简单起见,我们来说明如何首先打开网页中的链接(YES
是handleCodeInApp
这是默认设置),验证电子邮件然后重定向回移动应用以继续到用户的预定目的地。
NO
在上述流程中,验证链接将发送给用户。用户将单击该链接。它将打开配置的网页,其中将验证电子邮件。将显示一个继续按钮,如果设备上安装了iOS应用程序,则会在点击时将其重定向回应用程序。
您将使用Firebase动态链接拦截该链接。详细了解如何在iOS中配置FDL并在此处理链接:
https://firebase.google.com/docs/dynamic-links/ios/receive https://firebase.google.com/docs/auth/ios/passing-state-in-email-actions#configuring_firebase_dynamic_links
Firebase动态链接将与以下网址建立深层链接:
var actionCodeSettings = ActionCodeSettings.init()
actionCodeSettings.canHandleInApp = false
let user = Auth.auth().currentUser()
// This URL will be the deep link of the FDL. It is useful for
// passing state back to your iOS app to let it know that you were
// verifying a user of email user.email. This is also useful
// in case the user clicks the continue button a non iOS device.
// You should own this link.
actionCodeSettings.URL =
String(format: "https://www.example.com/?email=%@", user.email)
// This is your iOS app bundle ID. It will try to redirect to your
// app via Firebase dynamic link.
actionCodeSettings.setIOSBundleID("com.example.ios")
user.sendEmailVerification(withActionCodeSettings:actionCodeSettings { error in
if error {
// Error occurred. Inspect error.code and handle error.
return
}
// Email verification sent.
})