后台服务中的 Firebase 身份验证

Firebase Auth in Background Service

我有一个 android 后台服务,在 onCreate() 函数上 运行 这个

FirebaseAuth mAuth = FirebaseAuth.getInstance();

mAuth.signInWithEmailAndPassword("user@user.com", "password")
    .addOnCompleteListener((Executor)this, new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if (task.isSuccessful()) {
                Log.d(Actions.LOG_TAG, "signInWithEmail:success");
                FirebaseUser user = mAuth.getCurrentUser();

            } else {
                Log.w(Actions.LOG_TAG, "signInWithEmail:failure", task.getException());
            }
        }
    });

但是它崩溃了。为什么? 捕获异常是

network provider does not exist, provider doesn't exist: network

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.zzde)' on a null object reference 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.zzde)' on a null object reference

编辑

在 MainActivity 的 onStart() 函数中放置代码时出现同样的问题 (遵循本指南 https://firebase.google.com/docs/auth/android/password-auth

模拟器没有安装 Google Play 服务。

Firebase Auth 不支持没有播放服务的设备。

如果您想使用 Firebase,您需要使用 Firebase Admin SDK。