每当我点击注册时,都会出现错误java.lang.IllegalArgumentException:
给定String为空或null会继续在日志猫上弹出
我的代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = findViewById(R.id.toolbar);
progressBar = findViewById(R.id.progressBar);
email = findViewById(R.id.etEmail);
password = findViewById(R.id.etPassword);
signup = findViewById(R.id.btnSignup);
login = findViewById(R.id.btnLogin);
forgotPass = findViewById(R.id.btnUserForgottPass);
toolbar.setTitle(R.string.app_name);
firebaseAuth = FirebaseAuth.getInstance();
signup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
progressBar.setVisibility(View.VISIBLE);
firebaseAuth.createUserWithEmailAndPassword(email.getText().toString(), password.getText().toString())
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
progressBar.setVisibility(View.GONE);
if (task.isSuccessful()) {
firebaseAuth.getCurrentUser().sendEmailVerification()
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(MainActivity.this, "Registered successfully. Please check your email for verification",
Toast.LENGTH_LONG).show();
email.setText("");
password.setText("");
} else {
Toast.makeText(MainActivity.this, task.getException().getMessage(),
Toast.LENGTH_LONG).show();
}
}
});
}
}
});
}
});
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(MainActivity.this, LoginActivity.class));
}
});
forgotPass.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(MainActivity.this, ForgotPasswordActivity.class));
}
});
}
} Logcat
java.lang.IllegalArgumentException: Given String is empty or null
at com.google.android.gms.common.internal.Preconditions.checkNotEmpty(Unknown Source)at com.google.firebase.auth.FirebaseAuth.createUserWithEmailAndPassword(Unknown Source)
at com.example.patrick.test.MainActivity$1.onClick(MainActivity.java:56) firebaseAuth.createUserWithEmailAndPassword(email.getText().toString(), password.getText().toString())"
我不知道如何创建一个参数,如果您单击注册按钮并且email && password为=为null,它将显示一个提示,提示用户输入其电子邮件和密码。
我只是编程的初学者。
答案 0 :(得分:1)
不用担心,这很简单。当您走得更远时,请考虑将onCreate视为干净的启动场所,而不是用于连接按钮单击或处理事件。同时,让我们使用您所拥有的。
signup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
progressBar.setVisibility(View.VISIBLE);
String emailStr = email.getText().toString()
String password = password.getText().toString()
if(emailStr == null || emailStr.isEmpty()){
Toast.makeText("Email must not be empty", Toast.LENGTH_SHORT).show();
}else if(password == null || password.isEmpty(){
Toast.makeText("Password must not be empty", Toast.LENGTH_SHORT).show();
}else{
firebaseAuth.createUserWithEmailAndPassword(email.getText().toString(), password.getText().toString())
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
progressBar.setVisibility(View.GONE);
if (task.isSuccessful()) {
firebaseAuth.getCurrentUser().sendEmailVerification()
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(MainActivity.this, "Registered successfully. Please check your email for verification",
Toast.LENGTH_LONG).show();
email.setText("");
password.setText("");
} else {
Toast.makeText(MainActivity.this, task.getException().getMessage(),
Toast.LENGTH_LONG).show();
}
}
});
}
}
});
}
}
});
我只是复制了您的代码,然后直接在此处输入内容,因此,如果有什么小问题,它将是次要的。目标是将字符串变量与用户条目一起存储。然后验证它们是否不为空或为空,当然,如果您有要求满足它们的要求,然后再尝试发送。
如果您希望提前退货,也可以这样做
signup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
progressBar.setVisibility(View.VISIBLE);
String emailStr = email.getText().toString()
String password = password.getText().toString()
if(emailStr == null || emailStr.isEmpty()){
Toast.makeText("Email must not be empty", Toast.LENGTH_SHORT).show();
return;
}
if(password == null || password.isEmpty(){
Toast.makeText("Password must not be empty", Toast.LENGTH_SHORT).show();
return;
}
//the rest of the firebase code