Facebook在某些设备上的登录问题

时间:2019-05-11 18:42:11

标签: android firebase facebook-login

我在我的应用程序中添加了facebook登录名,它在我的手机和许多其他手机上都可以正常工作,但在某些手机上却不能。我尝试使用仿真器在其中一种设备上重现该问题,但是在仿真器上工作正常! 这是我使用的代码,希望您能帮助我找出问题所在

 mCallbackManager = CallbackManager.Factory.create();
    loginButton = (LoginButton) findViewById(R.id.Login_button);
    loginButton.setReadPermissions("email", "public_profile");
    loginButton.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) {
    super.onActivityResult(requestCode, resultCode, data);

    // Pass the activity result back to the Facebook SDK
    mCallbackManager.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");
                        finish();
                        Intent intent = new Intent(MainActivity.this, A.class);

                        DatabaseReference myRef = FirebaseDatabase.getInstance().getReference("users");
                        FirebaseUser userr = FirebaseAuth.getInstance().getCurrentUser();
                        myRef.child(userr.getUid()).child("Name").setValue(userr.getDisplayName());


                        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        startActivity(intent);
                    } 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();
                        LoginManager.getInstance().logOut();

                    }


                }
            });
}

0 个答案:

没有答案