java - 我试图在执行时在 android 中创建一个注册 Activity ,控制进入注册方法,之后控制停止

标签 java android

我正在尝试在 android 中创建一个注册 Activity ,我的控件转到注册方法,但是当我单击“注册”时,我已经完成了验证,它直接转到下一个 Activity ,而无需验证或注册 当我启动应用程序时 并进行注册 Activity ,它工作正常 另外,日志消息正在打印 但在调用注册方法后,没有任何效果 控制转到 Register() 方法之后它不起作用 它直接打开下一个 Activity 验证和 firebase create 方法无法访问 这是我写的代码

    package com.ap.pran;

    import androidx.annotation.NonNull;
    import androidx.appcompat.app.AppCompatActivity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.util.Patterns;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.ProgressBar;
    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.database.FirebaseDatabase;

    public class SignUp extends AppCompatActivity implements View.OnClickListener {

    ProgressBar progressBar;
    EditText editTextEmail, editTextPassword, editTextMobileNo, editTextVehicleNo, editTextName;
    private static final String TAG = " ANAND MESSAGE";
    private FirebaseAuth mAuth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sign_up);
        Log.i(TAG, "in onCreate1");
        editTextEmail = (EditText) findViewById(R.id.editTextEmail);
        editTextPassword = (EditText) findViewById(R.id.passWord);
        progressBar = (ProgressBar) findViewById(R.id.progressbar);
        editTextMobileNo = (EditText) findViewById(R.id.editTextMobileNo);
        editTextVehicleNo = (EditText) findViewById(R.id.editTextVehicleNo);
        editTextName = (EditText) findViewById(R.id.editTextName);
        mAuth = FirebaseAuth.getInstance();

        findViewById(R.id.buttonSignUp).setOnClickListener(this);
        findViewById(R.id.SignIn).setOnClickListener(this);

    }


    private void registerUser() {
        Log.i(TAG, "In register method");
        String email = editTextEmail.getText().toString().trim();
        String password = editTextPassword.getText().toString().trim();

        if (email.isEmpty()) {
            editTextEmail.setError("Email is required !!!");
            editTextEmail.requestFocus();
            return;
        }
        if (password.isEmpty()) {

            editTextPassword.setError("Password is required !!!");
            editTextPassword.requestFocus();
            return;
        }
        if (password.length()<6){
            editTextPassword.setError("Password length must be greater than 6");
            editTextPassword.requestFocus();
            return;
        }

        mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()){
                    Toast.makeText(SignUp.this,"User Registred !!!",Toast.LENGTH_SHORT).show();

                }
                else {
                    Toast.makeText(SignUp.this, "User Registration Failed !!!", Toast.LENGTH_SHORT).show();
                }
            }
        });




    }


    @Override
    public void onClick(View v) {

        switch (v.getId()) {
            case R.id.buttonSignUp:
                Log.i(TAG, "In case 1");
                registerUser();
                break;

            case R.id.SignIn:
                startActivity(new Intent(this, MainActivity.class));
                Log.i(TAG, "In case 2");
                break;
        }

    }
}

最佳答案

您应该记住,如果您是第一次使用此方法:

mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if (task.isSuccessful()){
                Toast.makeText(SignUp.this,"User Registred !!!",Toast.LENGTH_SHORT).show();

            }
            else {
                Toast.makeText(SignUp.this, "User Registration Failed !!!", Toast.LENGTH_SHORT).show();
            }
        }
    });

它将完美地工作。但在注册任何用户时,它会在完成注册后自动登录该用户。因此,注册成功后无需再次登录。 要再次进行新注册,您必须注销该应用程序中之前注册的用户。

注意:

我还建议您在 else 语句中使用 Toast.makeText(SignUp.this, task.getException().getMessage(), Toast.LENGTH_SHORT).show(); ,如下所示如果注册失败:

mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if (task.isSuccessful()){
                Toast.makeText(SignUp.this,"User Registred !!!",Toast.LENGTH_SHORT).show();

            }
            else {
                  Toast.makeText(SignUp.this, task.getException().getMessage(), Toast.LENGTH_SHORT).show();
            }
        }
    });

这将有助于确定注册失败的原因。

关于java - 我试图在执行时在 android 中创建一个注册 Activity ,控制进入注册方法,之后控制停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61360653/

相关文章:

java - Firebase Auth 帐户已创建,但在完整监听器上从未调用过

android - 如何将 AWS API Gateway 生成的 SDK 与 Android Volley 结合使用

java - 更改 Java 应用程序图标?

Java - 计算字符串中的数学表达式

java - JVM cucumber : Running multiple testcase on a single step definition

android - 如何通过音频插孔检测输入数据?

android - 从屏幕位置获取地理位置

java - Android Instrumented Tests 覆盖范围排除苍蝇

java - 下面的代码创建了多少个对象?

java - 如何在一个pom.xml中安装其他Maven包?