Facebook按钮已登录,但未执行登录后应执行的功能

时间:2018-10-06 18:50:46

标签: java android firebase firebase-authentication facebook-login

我在Android应用中使用Firebase。我使用Facebook按钮登录该应用。当我按下登录按钮时,它会写在按钮注销上,这表示该按钮已成功登录,但是我在onSuccess方法中编写的内容没有任何反应。我在所有的Facebook登录方法中都敬酒,但根本没有出现。

这是我的handleFacebookLogin方法:

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");
                    Toast.makeText(GeneralSignActivity.this, "نجح تسجيل الدخول", Toast.LENGTH_SHORT).show();
                    FirebaseUser user = mAuth.getCurrentUser();
                    //updateUI(user);
                } else {
                    // If sign in fails, display a message to the user.
                    Log.w(TAG, "signInWithCredential:failure", 

                    task.getException());
                    Toast.makeText(GeneralSignActivity.this, "Authentication failed.",
                        Toast.LENGTH_SHORT).show();
                    //updateUI(null);
                }
                    // ...
            }
        });
}

这是按钮的代码:

mCallbackManager = CallbackManager.Factory.create();
LoginButton loginButton = findViewById(R.id.facebookBtn);
loginButton.setReadPermissions("email", "public_profile");
loginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
    @Override
    public void onSuccess(LoginResult loginResult) {
        Log.d(TAG, "facebook:onSuccess:" + loginResult);
        Toast.makeText(GeneralSignActivity.this, "onSuccess" + loginResult, Toast.LENGTH_SHORT).show();
        handleFacebookAccessToken(loginResult.getAccessToken());
    }

    @Override
    public void onCancel() {
        Log.d(TAG, "facebook:onCancel");
        Toast.makeText(GeneralSignActivity.this, "onCancel" , Toast.LENGTH_SHORT).show();
        // ...
    }

    @Override
    public void onError(FacebookException error) {
        Log.d(TAG, "facebook:onError", error);
        Toast.makeText(GeneralSignActivity.this, "onError : " + error, Toast.LENGTH_SHORT).show();
        // ...
    }
});

0 个答案:

没有答案