【问题标题】:FirebaseAuth gives Null pointer exceptionFirebaseAuth 给出空指针异常
【发布时间】:2017-12-11 16:13:30
【问题描述】:

我正在尝试在 firebase 中注册用户。这是我的代码:

应用级分级:

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
compile 'com.google.firebase:firebase-core:11.6.2'
compile 'com.google.firebase:firebase-auth:11.6.2'

}

项目级分级:

 dependencies {
    classpath 'com.android.tools.build:gradle:3.0.1'
    classpath 'com.google.gms:google-services:3.1.1' // google-services plugin

我的注册用户代码:

    private void registerUser(String name,String email,String password) {
    pBar.setVisibility(View.VISIBLE);
    mAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
          if(task.isSuccessful()){
              Toast.makeText(getApplicationContext(),"User Created. Please login.",Toast.LENGTH_LONG).show();
          }
          else {
              Toast.makeText(getApplicationContext(),task.getException().getMessage(),Toast.LENGTH_LONG).show();
          }
          pBar.setVisibility(View.GONE);
        }
    });
}

这是一个例外:

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
                  at com.google.android.gms.internal.zzdtp.zzb(Unknown Source)
                  at com.google.android.gms.internal.zzdtw.zza(Unknown Source)
                  at com.google.firebase.auth.FirebaseAuth.createUserWithEmailAndPassword(Unknown Source)
                  at com.banik.helloworld.SignUpActivity.registerUser(SignUpActivity.java:73)
                  at com.banik.helloworld.SignUpActivity.onClick(SignUpActivity.java:68)

我已经在活动的 oncreate 方法中初始化了 mAuth:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up);
    mAuth = FirebaseAuth.getInstance();
    name = findViewById(R.id.name);
    email = findViewById(R.id.email);
    mobileNumber = findViewById(R.id.mobilenumber);
    password = findViewById(R.id.password);

    signUpBtn = findViewById(R.id.signup);
    signUpBtn.setOnClickListener(this);
    pBar = findViewById(R.id.signupBar);
}

请帮帮我.......

【问题讨论】:

  • mAuth 为空。你需要初始化它
  • 他是在 setContentView 下完成的
  • 很可能字符串名称为空
  • 您是否将文本保存到除投射之外的各种电子邮件和密码。意思是你给了代码passwordtext = password.getText().toString();,你必须把这个密码texd传递给函数
  • @Tomin B 这是我的电话 registerUser(name.getText().toString(),email.getText().toString(),password.getText().toString()) ;

标签: android firebase firebase-authentication


【解决方案1】:

您的手机或模拟器上必须安装 Google Play 服务

如果你在模拟器上测试它。 尝试在真实设备上进行测试,或者确保您的模拟器上安装了 GPS 并提供正确的经度和纬度

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-06
    • 2014-07-19
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多