问题修复更新:通过将 Firebase 降级到 9.6.0(我选择的随机版本)来修复。我假设最初的问题与模拟器的好游戏有关。
旧问题:所以我需要帮助,尝试设置 Firebase 身份验证以登录用户。我已经在 Firebase 控制台中启用了此功能,并且我之前已经完成了此操作,并在几周前将其作为课堂作业使用。但是这次我在尝试登录时得到了一个空对象引用。
我开始认为这与我的 gradle 文件有关。mAuth 不为空,字符串电子邮件和密码不为空。我只是按照这个 Firebase 指南:https ://firebase.google.com/docs/auth/android/password-auth
下面全班。错误开始的第 43 行(如屏幕截图所示)是 'mAuth.signInWithEmailAndPassword(email, password)'
package com.example.bri.inclass09;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
public class LoginActivity extends AppCompatActivity {
private FirebaseAuth mAuth;
private EditText emailET, passwordET;
private Button login, signup;
private static final String TAG = "test";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
mAuth = FirebaseAuth.getInstance();
Log.d(TAG, "mAuth is: " + mAuth.toString());
login = findViewById(R.id.loginButton);
signup = findViewById(R.id.signupButton);
emailET = findViewById(R.id.loginEmailET);
passwordET = findViewById(R.id.loginPassET);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String email = emailET.getText().toString();
String password = passwordET.getText().toString();
Log.d(TAG, email + " " + password);
mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(LoginActivity.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, "createUserWithEmail:success");
FirebaseUser user = mAuth.getCurrentUser();
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "createUserWithEmail:failure", task.getException());
Toast.makeText(LoginActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
}
// ...
}
});
}
});
}
@Override
public void onStart() {
super.onStart();
// Check if user is signed in (non-null) and update UI accordingly.
//FirebaseUser currentUser = mAuth.getCurrentUser();
}
}
在您的应用模块 build.gradle 文件中:
apply plugin: 'com.google.gms.google-services'
放错地方了。它应该是块外的最后一行dependencies
。
此外,设备或模拟器必须安装与您构建的 Firebase 版本兼容的 Google Play 服务版本。如果您在设备上看到此问题,可以前往 Play 商店下载最新版本。如果您使用的是模拟器,则需要使用 SDK Manager 为您正在使用的模拟器下载最新的 Google API 系统映像。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句