0

大家好,我正在使用Firebase 身份验证,我允许用户使用他的电子邮件和发送到他的电子邮件的验证链接登录......

一切正常,但在iOS 13中,我必须使用funcSceneDelegate代替and )我收到一个警告,警告我我没有调用 flatMap 调用的结果。AppDelegatescene method (_ scene: UIScene, continue userActivity: NSUserActivity

谁能帮我解决这个警报?

调用“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 上工作的代码

4

1 回答 1

1

你可以这样重写:

func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
    if let url = userActivity.webpageURL {
        handlePasswordlessSignIn(withURL:url)
    }
}

但是您仍然会收到投诉,因为现在您忽略了结果handlePasswordlessSignIn!您可以通过指定handlePasswordlessSignIn为来解决这个问题@discardableResult

@discardableResult
func handlePasswordlessSignIn( //...
于 2020-03-20T01:01:24.000 回答