android - Facebook 登录成功但 firebase 身份验证抛出异常

标签 android facebook firebase firebase-authentication

我是 firebase 新手,我想第一次实现 facebook 身份验证。我可以成功获取 facebook token ,但是当我调用 signInWithCredential() ide 时会抛出此异常。

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.android.gms.tasks.Task com.google.android.gms.common.api.GoogleApi.zzb(com.google.android.gms.common.api.internal.zzdf)' on a null object reference

这是我的源代码

public class LoginActivity extends AppCompatActivity {

    private CallbackManager callbackManager;
    private FirebaseAuth mAuth;
    private String TAG = "Test";

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mAuth = FirebaseAuth.getInstance();
        callbackManager = CallbackManager.Factory.create();

        LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
        loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {

                handleFacebookAccessToken(loginResult.getAccessToken());


            }

            @Override
            public void onCancel() {


            }

            @Override
            public void onError(FacebookException e) {

            }
        });

    }

    private void handleFacebookAccessToken(AccessToken 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()) {

                            FirebaseUser user = mAuth.getCurrentUser();

                        } else {

                        }

                    }
                });
    }

    @Override
    public void onStart() {
        super.onStart();
        FirebaseUser currentUser = mAuth.getCurrentUser();

    }

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

感谢您的任何建议。

最佳答案

您必须安装 Google Play 服务。我想您正在模拟器上测试它。尝试在真实设备上测试它或确保您的模拟器上安装了 GPS

关于android - Facebook 登录成功但 firebase 身份验证抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47283637/

相关文章:

android - 在textview android上捏缩放

android - 如何控制曝光时间

Android 发布到 Facebook 墙,stream.publish 几天后就坏了

facebook - 用 facebook 登录替换 drupal 注册和登录

Facebook API 的 fb :registration returning "Invalid ' client_id'"when not connected to Facebook

Firebase SMS 多因素身份验证,error.resolver 未定义

android - WebStorm 上的 Firebase 设置

android - 在Android中使用辅助服务获取 Activity 的布局名称

node.js - firebase 暂时发送 "There is no user record"?

java - 如何从 firebaserecycleradapter 上的 firebase 数据库中获取数据单击