Firebase:使用Firebase令牌的Facebook身份验证不起作用

Ant*_*nyR 2 facebook-graph-api ios firebase swift firebase-authentication

我正在尝试在我的应用程序中获得有效的Facebook身份验证。

我在这里按照说明进行操作:https : //firebase.google.com/docs/auth/ios/facebook-login

当我单击Facebook登录按钮时,一切工作正常:用户已登录。在facebook登录委托方法中,可以:

    func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!)
Run Code Online (Sandbox Code Playgroud)

在这种方法中,我必须创建一个Firebase令牌以最终通过Firebase进行身份验证(步骤5)。这就是我要做的:

let credential = FacebookAuthProvider.credential(withAccessToken: 
FBSDKAccessToken.current().tokenString)
            Auth.auth().signIn(with: credential) { (user, error) in
                if let error = error {
                    print(error.localizedDescription)
                    self.errorServer()
                } else {
                    FitUtils.setFitUser(user: user)
                }
            }
Run Code Online (Sandbox Code Playgroud)

问题:我的credential变量不是nil,一切正常,但是当我调用时Auth.auth().signIn(...),该方法将抛出该error变量,并且user是nil。

我没有太多有关该错误的信息:

发生内部错误,请打印并检查错误详细信息以获取更多信息。

error   NSError domain: "FIRAuthErrorDomain" - code: 17999  0x0000604000640630
Run Code Online (Sandbox Code Playgroud)

我怀疑有关Facebook API密钥或Firebase控制台中类似错误,但我已经检查了一切都很好。

任何的想法 ?

编辑

我找到了该错误的明确描述:

UserInfo={FIRAuthErrorUserInfoDeserializedResponseKey={
    code = 400;
    errors =     (
                {
            domain = global;
            message = "Unsuccessful debug_token response from Facebook: {\"error\":{\"message\":\"(#100) You must provide an app access token or a user access token that is an owner or developer of the app\",\"type\":\"OAuthException\",\"code\":100,\"fbtrace_id\":\"GkGVPPBP7vo\"}}";
            reason = invalid;
        }
    );
    message = "Unsuccessful debug_token response from Facebook: {\"error\":{\"message\":\"(#100) You must provide an app access token or a user access token that is an owner or developer of the app\",\"type\":\"OAuthException\",\"code\":100,\"fbtrace_id\":\"GkGVPPBP7vo\"}}";
}}}}
(lldb) 
Run Code Online (Sandbox Code Playgroud)

Ant*_*nyR 5

终于找到了答案,感谢这篇文章:

https://github.com/firebase/FirebaseUI-iOS/issues/83#issuecomment-232523935

我必须禁用选项“客户端中是否嵌入了应用秘密”?在Facebook控制台中:

在此处输入图片说明

希望这可以帮助。