ios - Firebase signInWithCredential 使用 Facebook SDK 给出错误

标签 ios swift facebook firebase firebase-authentication

我在 iOS 中使用 swift 语言使用 Firebase。我正在尝试使用 Facebook 登录。我正在使用 graphRequest 获取 FBSDKAccessToken。当我使用 Facebook 的 Firebase 登录方法时出现以下错误

 UserInfo={NSUnderlyingError=0x608000059560 {Error Domain=FIRAuthInternalErrorDomain Code=3 "(null)"
 UserInfo={FIRAuthErrorUserInfoDeserializedResponseKey={
         code = 400;
         errors = (
             {
                 domain = global;
                 message = "Unsuccessful debug_token response from Facebook: {\"error\":{\"message\":\"(#4) Application request limit
 reached\",\"type\":\"OAuthException\",\"is_transient\":true,\"code\":4,\"fbtrace_id\":\"En2h2Q0L7TP\"}}";
                 reason = invalid;
             }
         );
         message = "Unsuccessful debug_token response from Facebook: {\"error\":{\"message\":\"(#4) Application request limit
 reached\",\"type\":\"OAuthException\",\"is_transient\":true,\"code\":4,\"fbtrace_id\":\"En2h2Q0L7TP\"}}";
     }}}, error_name=ERROR_INTERNAL_ERROR, NSLocalizedDescription=An internal error has occurred, print and inspect the error details for
 more information.}

我的完整代码是

    {
        let login : FBSDKLoginManager = FBSDKLoginManager()
        login.logOut()
        login.logInWithReadPermissions(["public_profile","email"], fromViewController: self, handler:  { (result, error) -> Void in
            if (error == nil){
                let request: FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id,email,first_name,middle_name,last_name,picture"], HTTPMethod: "GET")
                request.startWithCompletionHandler({ (connection : FBSDKGraphRequestConnection!, result : AnyObject!, error : NSError!) -> Void in
                    if error == nil
                    {
                        let userDetail : NSDictionary = result as! NSDictionary




                    let token = FBSDKAccessToken.currentAccessToken().tokenString

                       let credential =  FIRFacebookAuthProvider.credentialWithAccessToken(token)
                       FIRAuth.auth()?.signInWithCredential(credential, completion: { (user, error) in

                            if error == nil
                            {

                                let homeVC = self.storyboard?.instantiateViewControllerWithIdentifier("PageController") as? PageController
                                self.navigationController?.pushViewController(homeVC!, animated: true)

                                print(userDetail)
                            }
                            else
                            {
                                 print("Signing  Failed ")

                            }


                        })



                    }
                    else
                    {
                        print("Error Getting Info \(error)");
                    }
                })
            }else{
                print("Login Failed")
            }
        })

        return;
    }

最佳答案

我已经通过更改 info.plist 和 URL 中的 FacebookAppID 解决了这个问题
我使用了与 Firebase 应用程序无关的那个。 (旧的)

这是我的登录流程
1) fbLoginManager.login
2) let credential = FacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString)
3) Auth.auth().signIn(with: credential)

关于ios - Firebase signInWithCredential 使用 Facebook SDK 给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43519458/

相关文章:

php - 如何正确使用facebook OAuth2?

ios - 以编程方式将按钮添加到 TableView 单元格

ios - 每个页面上的 UIScrollview 中的单个 UIView

iOS - 从我的应用程序以编程方式进行 WhatsApp 语音/视频通话

ios - restkit 映射和验证响应

uitableview - 启动应用程序 xCode 时的 EXC_BAD_INSTRUCTION 断点

swift - 在 SwiftUI 中使用 ForEach 枚举

javascript - FBInstant.shareAsync() 函数在 facebook 即时游戏分享按钮中无法正常工作且没有任何错误

ios - iOS10 的 NSPersistentContainer 和单元测试

android - 如何处理用户在 Android 中的 Facebook 登录对话框中单击 X 按钮