嗨,我正在使用的每个人Firebase authentication,允许用户使用他的电子邮件和发送到他的电子邮件的验证链接登录...
一切正常,但使用iOS 13,我必须使用SceneDelegate
而不是AppDelegate
,并且在函数scene method (_ scene: UIScene, continue userActivity: NSUserActivity
中),我收到一条警报,警告我我未调用flatMap调用的结果。
任何人都可以帮助我解决此警报吗?
未调用'flatMap'的结果
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
userActivity.webpageURL.flatMap(handlePasswordlessSignIn)
}
func handlePasswordlessSignIn(withURL: URL) -> Bool {
let link = withURL.absoluteString
if Auth.auth().isSignIn(withEmailLink: link) {
guard let email = UserDefaults.standard.value(forKey: FirebaseUserAuthWithLink.email) as? String else {
print("L'email utilizzata per accedere non esiste")
return true
}
Auth.auth().signIn(withEmail: email, link: link) { (user, error) in
if let error = error {
print(error.localizedDescription)
return
}
guard let user = user else {
print(" Authentication con Link Fallita")
return
}
let uid = user.user.uid
print("Autenticazione Riuscita")
let data = [
"email" : email
] as [String : Any]
Firestore.firestore().collection("Users").document(uid).setData(data) { (error) in
if let error = error {
print(error.localizedDescription)
return
}
}
}
return true
}
return false
}
在实现教程之后,所有队列示例均参考AppDelegate,而我尝试更新在SceneDelegate上工作的代码
您可以这样重写:
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
if let url = userActivity.webpageURL {
handlePasswordlessSignIn(withURL:url)
}
}