SceneDelegate-调用'flatMap'的结果未使用

问题描述 投票:0回答:1

嗨,我正在使用的每个人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上工作的代码

ios swift firebase appdelegate uiscenedelegate
1个回答
1
投票

您可以这样重写:

func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
    if let url = userActivity.webpageURL {
        handlePasswordlessSignIn(withURL:url)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.