基于Android的Facebook登录Firebase出现问题-E/GraphResponse
我正在尝试在Firebase上使用facebook创建登录活动,但当我尝试登录时,会显示“身份验证失败”,我收到以下错误: E/GraphResponse:{HttpStatus:400,错误代码:100,子错误代码:33,错误类型:GraphMethodException,错误消息:不支持获取 请求。ID为“XXXXXXXXXXXXX”的对象不存在,无法删除 由于缺少权限而加载,或不支持此操作 这是我的代码:基于Android的Facebook登录Firebase出现问题-E/GraphResponse,android,Android,我正在尝试在Firebase上使用facebook创建登录活动,但当我尝试登录时,会显示“身份验证失败”,我收到以下错误: E/GraphResponse:{HttpStatus:400,错误代码:100,子错误代码:33,错误类型:GraphMethodException,错误消息:不支持获取 请求。ID为“XXXXXXXXXXXXX”的对象不存在,无法删除 由于缺少权限而加载,或不支持此操作 这是我的代码: @Override protected void onCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAuth = FirebaseAuth.getInstance();
mCallbackManager = CallbackManager.Factory.create();
}
private void updateUI() {
Toast.makeText(MainActivity.this, "Logado!", Toast.LENGTH_LONG).show();
Intent intent = new Intent(MainActivity.this, ScreenActivity.class);
startActivity(intent);
}
public void fbClicked(View view) {
fbButton = findViewById(R.id.facebookButton);
fbButton.setEnabled(false);
LoginManager.getInstance().logInWithReadPermissions(MainActivity.this, Arrays.asList("email", "public_profile"));
LoginManager.getInstance().registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.d(TAG, "facebook:onSuccess:" + loginResult);
handleFacebookAccessToken(loginResult.getAccessToken());
}
@Override
public void onCancel() {
Log.d(TAG, "facebook:onCancel");
}
@Override
public void onError(FacebookException error) {
Log.d(TAG, "facebook:onError", error);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
mCallbackManager.onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}
private void handleFacebookAccessToken(AccessToken token) {
Log.d(TAG, "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
Log.d(TAG, "signInWithCredential:success");
FirebaseUser user = mAuth.getCurrentUser();
fbButton.setEnabled(true);
updateUI();
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "signInWithCredential:failure", task.getException());
Toast.makeText(MainActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
fbButton.setEnabled(true);
}
}
});
}
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAuth=FirebaseAuth.getInstance();
mCallbackManager=CallbackManager.Factory.create();
}
私有void updateUI(){
Toast.makeText(MainActivity.this,“Logado!”,Toast.LENGTH_LONG.show();
意向意向=新意向(MainActivity.this、ScreenActivity.class);
星触觉(意向);
}
单击的公共无效FBI(视图){
fbButton=findViewById(R.id.facebookButton);
fbButton.setEnabled(错误);
LoginManager.getInstance().logInWithReadPermissions(MainActivity.this、Arrays.asList(“电子邮件”、“公共配置文件”);
LoginManager.getInstance().registerCallback(mCallbackManager,new FacebookCallback()){
@凌驾
成功时公共无效(LoginResult LoginResult){
Log.d(标签“facebook:onSuccess:+loginResult”);
handleFacebookAccessToken(loginResult.getAccessToken());
}
@凌驾
公开作废{
Log.d(标签“facebook:onCancel”);
}
@凌驾
public void onError(facebook异常错误){
Log.d(标签“facebook:onError”,错误);
}
});
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
onActivityResult(请求代码、结果代码、数据);
super.onActivityResult(请求代码、结果代码、数据);
}
私有无效handleFacebookAccessToken(AccessToken令牌){
Log.d(标记“handleFacebookAccessToken:”+token);
AuthCredential credential=FacebookAuthProvider.getCredential(token.getToken());
mAuth.SIGNWITH凭证(凭证)
.addOnCompleteListener(这是新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
//登录成功,使用登录用户的信息更新UI
Log.d(标记“signInWithCredential:success”);
FirebaseUser=mAuth.getCurrentUser();
fbButton.setEnabled(真);
updateUI();
}否则{
//如果登录失败,则向用户显示消息。
w(标记“signInWithCredential:failure”,task.getException());
Toast.makeText(MainActivity.this,“身份验证失败”,
吐司。长度(短)。show();
fbButton.setEnabled(真);
}
}
});
}
}
如果您确信已正确完成以下所有文档,则问题可能不在您这边。今天Facebook宣布他们受到黑客攻击,可能有很多用户的数据泄露,所以,我只是猜测,可能他们暂时中止了一些行动。