ios - swift - firebase facebook 身份验证时出现 invalid_credentials 错误?

标签 ios swift facebook firebase firebase-authentication

我不知道是什么导致了这个问题,使用 Firebase 的 FB 登录工作正常。但现在我遇到了 INVALID_CREDENTIALS 以下错误。

我尝试从 Facebook 删除应用程序并再次运行,然后检查 https://developers.facebook.com/每个部分但同样的问题仍然存在。

完美打印 accessToken 后,print("yes (error)") 行会出现此错误。

我已经搜索过,但找不到可能的解决方案,为什么会出现这个问题,如何解决?

错误域=FirebaseAuthentication Code=-11“(错误代码:INVALID_CREDENTIALS)提供的身份验证凭据无效。” UserInfo={details={"providerErrorInfo":{}}, NSLocalizedDescription=(错误代码: INVALID_CREDENTIALS) 提供的身份验证凭据无效。}

@IBAction func loginFb_clicked(sender: AnyObject) {

    let facebookLogin = FBSDKLoginManager()


    facebookLogin.logInWithReadPermissions(["email"], fromViewController: self) { (facebookResult: FBSDKLoginManagerLoginResult!, facebookError: NSError!) in

        if facebookError == nil {

            if FBSDKAccessToken.currentAccessToken() == nil {

                print("FOUND NIL!")

            }
            else if(facebookResult.isCancelled) {

                print("Cancelled")

            }
            else {

                let accessToken = FBSDKAccessToken.currentAccessToken().tokenString
                print(accessToken)

                DataService.ds.REF_BASE.authWithOAuthProvider("facebook", token: accessToken, withCompletionBlock: {
                    error, authData in

                    if error != nil {
                        print("yes \(error)")
                    }
                    else {

                        let dateFormatter = NSDateFormatter()
                        dateFormatter.dateFormat = "MMMM dd, yyyy hh:mm"
                        let stringDate = dateFormatter.stringFromDate(NSDate())
                        print("createdAt: " + stringDate)

                        let user =
                            ["id": authData.providerData["id"] as! String,
                                "accessToken": authData.providerData["accessToken"] as! String,
                                "provider": authData.provider!,
                                "displayName": authData.providerData["displayName"] as! String,
                                "email": authData.providerData["email"] as! String,
                                "profileImageURL": authData.providerData["profileImageURL"] as! String,
                                "token": authData.token as String,
                                "createdAt": stringDate]


                        let uuidString:String = authData.providerData["id"] as! String
                        DataService.ds.REF_USERS.childByAppendingPath("facebook:"+uuidString)
                            .observeSingleEventOfType(.Value, withBlock: { snapshot in
                                print("Solved snapshot is:")
                                print(snapshot.value)
                                if !snapshot.exists() {
                                    print("USER NOT EXIST ON DB!")

                                    // DataService.ds.REF_USERS_KEY.childByAppendingPath("facebook:"+uuidString).setValue("1")
                                    DataService.ds.createFirebaseUser(authData.uid, user: user)

                                }
                                else {
                                    print("USER EXIST ALREADY......................")
                                    DataService.ds.REF_USERS.childByAppendingPath("facebook:"+uuidString).updateChildValues(user)
                                }
                            })


                        print("Successfully logged in with facebook. \(accessToken)")
                        print("Logged in! \(authData)")

                        NSUserDefaults.standardUserDefaults().setValue(authData.uid, forKey: KEY_UID)
                        self.performSegueWithIdentifier(SEGUE_LOGGED_IN, sender: nil)
                    }
                })

            }
        }
    }
}

最佳答案

在developer.facebook.com 的高级设置中添加IP 白名单时会出现此问题。检查您的设置,如果您认为您没有添加它,请删除。就可以解决了。

关于ios - swift - firebase facebook 身份验证时出现 invalid_credentials 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36432988/

相关文章:

ios - 找不到设备的临时配置文件

ios - 找不到 Objective-C 桥接头部分

android - 在 Android 和 iOS 应用程序与用户日历之间同步日历事件?

ios - 如何在我的 Sprite Kit 游戏应用程序中实现 Facebook 和 Twitter 发帖?

javascript - Passport.js Facebook 身份验证下一步不起作用

iphone - 使用 iOS6 链接到 Facebook 页面

ios - iOS App提交并带有验证警告,但App Status显示等待审核

ios - SwiftUI使用步进器动态添加/删除TextField

swift - 如何正确地将 3rd 方库委托(delegate)转换为 RxSwift Observable

facebook - 套接字策略文件的端口843-用户的端口多久关闭一次?