Firestore - Facebook 无效的 OAuth 访问令牌签名代码 190
Firestore - Facebook Invalid OAuth access token signature code 190
我正在尝试在我的 android 应用程序中包含 facebook 登录。但是尽管我已经关注了 firebase 和 facebook 中的文档,但我仍然无法做到。当我点击登录按钮时,facebook 给我以下错误:
com.google.firebase.auth.FirebaseAuthInvalidCredentialsException: The supplied auth credential is malformed or has expired. [ Unsuccessful debug_token response from Facebook: {"error":{"message":"Invalid OAuth access token signature.","type":"OAuthException","code":190,"fbtrace_id":"ENYy8qUQd+C"}} ]
我注册了developers.facebook,将我的App ID和App Secret执行到firebase auth部分。在我包含我的 keyhash 和有效的 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 片段出现了,我可以点击继续。但是之后就没法继续了
解决了我的问题。我一直在不停地编码几个小时,并且使用所有这些 chrome 选项卡,我意识到我在粘贴 App Id 等后忘记点击 firebase 身份验证选项卡上的 "save" 。好的编码日。
转到您的 firebase 并进入 firebase 身份验证并启用 facebook 身份验证然后转到规则并授予阅读和 Wright
我正在尝试在我的 android 应用程序中包含 facebook 登录。但是尽管我已经关注了 firebase 和 facebook 中的文档,但我仍然无法做到。当我点击登录按钮时,facebook 给我以下错误:
com.google.firebase.auth.FirebaseAuthInvalidCredentialsException: The supplied auth credential is malformed or has expired. [ Unsuccessful debug_token response from Facebook: {"error":{"message":"Invalid OAuth access token signature.","type":"OAuthException","code":190,"fbtrace_id":"ENYy8qUQd+C"}} ]
我注册了developers.facebook,将我的App ID和App Secret执行到firebase auth部分。在我包含我的 keyhash 和有效的 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 片段出现了,我可以点击继续。但是之后就没法继续了
解决了我的问题。我一直在不停地编码几个小时,并且使用所有这些 chrome 选项卡,我意识到我在粘贴 App Id 等后忘记点击 firebase 身份验证选项卡上的 "save" 。好的编码日。
转到您的 firebase 并进入 firebase 身份验证并启用 facebook 身份验证然后转到规则并授予阅读和 Wright