Firestore-Facebook无效的OAuth访问令牌签名代码190

时间:2019-04-25 03:19:26

标签: android firebase-authentication facebook-login

我正在尝试在我的Android应用程序中包括Facebook登录名。但是,尽管我一直关注firebase和facebook中的文档,但我仍然做不到。当我单击登录按钮时,facebook给我以下错误:

  

com.google.firebase.auth.FirebaseAuthInvalidCredentialsException:提供的身份验证凭证格式错误或已过期。 [Facebook的debug_token响应失败:{“错误”:{“消息”:“无效的OAuth访问令牌签名。”,“类型”:“ OAuthException”,“代码”:190,“ fbtrace_id”:“ ENYy8qUQd + C”} }]

我注册了developers.facebook,对Firebase身份验证部分执行了我的App ID和App Secret。在包含我的密钥哈希和有效的oAuth重定向URI之后,仍然无法解决此问题。这是我在android中的代码;

在oncreate;

    mCallbackManager = CallbackManager.Factory.create();
    loginButton = findViewById(R.id.facebook_login);
    loginButton.setReadPermissions("email");

    loginButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            signFb();
        }
    });

在oncreate之后,我有了用于registerCallback的此方法。

private void signFb()
{
    loginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            handleFacebookAccessToken(loginResult.getAccessToken());
        }

        @Override
        public void onCancel() {
            Log.d("aa", "facebook:onCancel");
            // ...
        }

        @Override
        public void onError(FacebookException error) {
            Log.d("aa", "facebook:onError", error);
            Log.d("ere", error.toString());
        }
    });
}



private void handleFacebookAccessToken(AccessToken token) {
    Log.d("asdfgb", "handleFacebookAccessToken:" + token);

    AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
    mAuth.signInWithCredential(credential)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        // Sign in success, update UI with the signed-in user's information
                        FirebaseUser user = mAuth.getCurrentUser();
                        Log.d("esgfsgdvcxz ", "onComplete: ASFDSGBHSF");
                        if(user != null) {
                            Intent intent = new Intent(ActivityLogin.this, MainFragmentActivity.class);
                            startActivity(intent);
                            finish();
                            return;
                        }
                    } else {
                        // If sign in fails, display a message to the user.
                        Log.w("asd", "signInWithCredential:failure", task.getException());
                    }

                    // ...
                }
            });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    // Pass the activity result back to the Facebook SDK
    mCallbackManager.onActivityResult(requestCode, resultCode, data);
}

谢谢。我认为问题不出在代码中。 因为出现了Facebook片段,所以我可以单击继续。但是之后,我无法继续。

2 个答案:

答案 0 :(得分:0)

解决了我的问题。我已经不停地编码了几个小时,并且使用所有这些chrome标签,我意识到在粘贴App Id等之后忘记在Firebase身份验证标签上单击“保存”。好的编码天。

答案 1 :(得分:0)

转到您的Firebase并进入Firebase身份验证,然后启用Facebook身份验证,然后进入规则并授予读取权限和赖特权限