Firebase Auth在后台服务中

时间:2018-03-28 05:59:35

标签: android firebase firebase-authentication 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());
            }
        }
    });

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

  

网络提供商不存在,提供商不存在:网络

     

尝试调用虚拟方法'com.google.android.gms.tasks.Task   com.google.android.gms.common.api.GoogleApi.zzb(com.google.android.gms.common.api.internal.zzde)”   在null对象引用上       java.lang.NullPointerException:尝试调用虚拟方法'com.google.android.gms.tasks.Task   com.google.android.gms.common.api.GoogleApi.zzb(com.google.android.gms.common.api.internal.zzde)”   在空对象引用上

修改

将代码放在MainActivity中的onStart()函数中也一样 (遵循本指南https://firebase.google.com/docs/auth/android/password-auth

1 个答案:

答案 0 :(得分:0)

模拟器未安装Google Play服务。

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

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