如果字符串为空,Java Firebase不发送密码重置
我正在创建一个活动,仅当edittext的内容不是空字符串时,才允许您向edittext中的邮件发送重置链接。但我的控制不起作用。这是完整的代码:如果字符串为空,Java Firebase不发送密码重置,java,android,firebase,firebase-authentication,Java,Android,Firebase,Firebase Authentication,我正在创建一个活动,仅当edittext的内容不是空字符串时,才允许您向edittext中的邮件发送重置链接。但我的控制不起作用。这是完整的代码: FirebaseAuth fAuth; private String email; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); se
FirebaseAuth fAuth;
private String email;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_resetpsw);
fAuth = FirebaseAuth.getInstance();
Button btn_rst = findViewById(R.id.btn_resetpasswr);
EditText emailtxt = findViewById(R.id.txt_emres);
btn_rst.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
email = emailtxt.getText().toString();
if(email != "") {
fAuth.sendPasswordResetEmail(email);
Toast.makeText(getApplicationContext(), "Email inviata!", Toast.LENGTH_SHORT).show();
startActivity(new Intent(resetpsw.this, accesso.class));
}
}
});
}
}
实际上,在任何情况下,即使字符串为空(“”),条件也为真,因此我有以下错误:
2021-06-02 16:26:55.015 28645-28645/com.conta.pophome
E/AndroidRuntime:致命异常:主
进程:com.conta.pophome,PID:28645
java.lang.IllegalArgumentException:给定的字符串为空或null
在com.google.android.gms.common.internal.premissions.checkNotEmpty上(com.google.android.gms:play services base@@17.1.0:5)
在com.google.firebase.auth.FirebaseAuth.sendPasswordResetEmail上(com.google.firebase:firebase auth@@21.0.1:1)
位于com.conta.pophome.resetpsw$1.onClick(resetpsw.java:37)
在android.view.view.performClick上(view.java:7448)
在android.view.view.performClickInternal(view.java:7425)
在android.view.view.access$3600(view.java:810)
在android.view.view$PerformClick.run(view.java:28305)
位于android.os.Handler.handleCallback(Handler.java:938)
位于android.os.Handler.dispatchMessage(Handler.java:99)
位于android.os.Looper.loop(Looper.java:223)
位于android.app.ActivityThread.main(ActivityThread.java:7656)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
我真的不知道为什么这个条件是真的,即使字符串是空字符串。有人能帮我吗?谢谢你使用isEmpty()方法
不客气@琼斯诺
email = emailtxt.getText().toString();
if(email.isEmpty())
return;
fAuth.sendPasswordResetEmail(email);
Toast.makeText(getApplicationContext(), "Email inviata!", Toast.LENGTH_SHORT).show();
startActivity(new Intent(resetpsw.this, accesso.class));