Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Firebase身份验证过程_Ios_Swift_Facebook_Firebase_Firebase Authentication - Fatal编程技术网

Ios Firebase身份验证过程

Ios Firebase身份验证过程,ios,swift,facebook,firebase,firebase-authentication,Ios,Swift,Facebook,Firebase,Firebase Authentication,我对firebase身份验证提供商的链接感到困惑 我已经实现了电子邮件/密码注册以及Facebook身份验证 无论何时我注册并使用电子邮件/密码登录,它都能100%工作。但是,当我在使用电子邮件/密码注册后尝试登录Facebook时,我会收到一条消息:“该电子邮件地址已被其他帐户使用。” 在我使用电子邮件和密码登录后,我正在尝试用以下方法链接facebook帐户 FIRAuth.auth()?.signIn(withEmail: email, password: password) { (use

我对firebase身份验证提供商的链接感到困惑

我已经实现了电子邮件/密码注册以及Facebook身份验证

无论何时我注册并使用电子邮件/密码登录,它都能100%工作。但是,当我在使用电子邮件/密码注册后尝试登录Facebook时,我会收到一条消息:“该电子邮件地址已被其他帐户使用。”

在我使用电子邮件和密码登录后,我正在尝试用以下方法链接facebook帐户

FIRAuth.auth()?.signIn(withEmail: email, password: password) { (user, error) in
        if error != nil{
          print(error.localizedDescription)
        }
        else{
            let credential = FIRFacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString)
            user.link(with: credential) { (user, error) in
            if error != nil{
                print(error.localizedDescription)
            }
            else{
                print("SUCCESS")
            }
        }
    }
当到达“let credential”行时,它抛出一个未定义的错误


还有一个问题。当我使用Facebook登录时,再次注销,使用Firebase的密码重置重置密码,并尝试使用电子邮件和密码登录。应用程序是否仍然能够使用Facebook身份验证登录?我以前尝试过,但它不再使用Facebook登录,而是使用电子邮件和密码登录。

我不明白你想做什么。为什么你想先用电子邮件唱歌,然后用facebook?应该是这个或那个。所以基本上我想知道是否可以使用Facebook登录,使用Facebook注销,然后使用电子邮件和密码登录,这两种登录都使用firebase上的同一用户?不,这是不可能的。如果用户使用使用a@a.com,除非帐户被删除,否则他不能再注册这封电子邮件。@FaridAlHaddad:我不知道你从哪里得到你的信息。Firebase身份验证允许帐户链接,这样您就可以拥有一个绑定到(例如)电子邮件+密码、谷歌和Facebook登录的帐户。请参阅@user2980509。用户必须已登录到现有帐户,才能链接到其他提供商。
FIRAuth.auth()?.signIn(withEmail: email, password: password) { (user, error) in
        if error != nil{
          print(error.localizedDescription)
        }
        else{
            let credential = FIRFacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString)
            user.link(with: credential) { (user, error) in
            if error != nil{
                print(error.localizedDescription)
            }
            else{
                print("SUCCESS")
            }
        }
    }