Java MVVM firebase用户身份验证

Java MVVM firebase用户身份验证,java,android,firebase,mvvm,firebase-authentication,Java,Android,Firebase,Mvvm,Firebase Authentication,因为我是MVVM和Firebase的新手,所以我尝试创建一个简单的应用程序来注册用户。注册成功了,但随之而来的是一个奇怪的错误和应用程序崩溃。因为我也在尝试理解MVVM,所以我希望tipps能提供更好的代码。任何能让它变得更好的东西都会有帮助。谢谢 主要活动 package com.example.testingapp; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; im

因为我是MVVM和Firebase的新手,所以我尝试创建一个简单的应用程序来注册用户。注册成功了,但随之而来的是一个奇怪的错误和应用程序崩溃。因为我也在尝试理解MVVM,所以我希望tipps能提供更好的代码。任何能让它变得更好的东西都会有帮助。谢谢

主要活动

package com.example.testingapp;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.ViewModelProviders;

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;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    MainViewmodel model;
    EditText editEmail;
    EditText editPassword;
    Button btnSignUp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editEmail = findViewById(R.id.editEmail);
        editPassword = findViewById(R.id.editPassword);
        btnSignUp = findViewById(R.id.btnSignUp);
        btnSignUp.setOnClickListener(this);
        model = ViewModelProviders.of(this).get(MainViewmodel.class);
    }

    @Override
    public void onClick(View view) {
        model.email = editEmail.getText().toString().trim();
        model.password = editPassword.getText().toString().trim();
        model.signUp();
    }
}
主视图模型

package com.example.testingapp;

import androidx.lifecycle.ViewModel;

public class MainViewmodel extends ViewModel {

    repo repository;
    String email;
    String password;

    public MainViewmodel(){
        if(repository == null){
            repository = new repo();
        }
    }

    public void signUp(){
        repository.firebaseSignUp(email, password);
    }
}
回购

package com.example.testingapp;
导入android.util.Log;
导入androidx.annotation.NonNull;
导入com.google.android.gms.tasks.OnCompleteListener;
导入com.google.android.gms.tasks.Task;
导入com.google.firebase.auth.AuthResult;
导入com.google.firebase.auth.FirebaseAuth;
导入java.util.concurrent.Executor;
导入静态android.content.ContentValues.TAG;
公开回购{
FirebaseAuth mAuth=FirebaseAuth.getInstance();
public void firebaseSignUp(字符串电子邮件、字符串密码){
Log.d(标签“firebaseSignUp:Success”+电子邮件+密码);
mAuth.createUserWithEmailAndPassword(电子邮件,密码)
.addOnCompleteListener((执行者)此,新OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
}
});
}
}

您可以删除
(执行器)此,
。对我来说,这是可行的。

请发布崩溃日志。如果您对使用MVVM的Firebase身份验证感兴趣,您可以查看以下文章:。
package com.example.testingapp;

import android.util.Log;

import androidx.annotation.NonNull;

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 java.util.concurrent.Executor;

import static android.content.ContentValues.TAG;

public class repo {

    FirebaseAuth mAuth = FirebaseAuth.getInstance();


    public void firebaseSignUp(String email, String password){
        Log.d(TAG, "firebaseSignUp: Success" + email + password);
        mAuth.createUserWithEmailAndPassword(email, password)
                .addOnCompleteListener((Executor) this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {

                    }
                });


    }

}