当前位置: 首页 > 知识库问答 >
问题:

如果字符串为空,Java Firebase不发送密码重置

东门涵育
2023-03-14

我正在创建一个活动,仅当edittext的内容不是空字符串时,才允许您向edittext中的邮件发送重置链接。但我的控制失灵了。以下是完整的代码:

    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。康塔。pophome E/AndroidRuntime:致命异常:主进程:com。康塔。pophome,PID:28645爪哇。lang.IllegalArgumentException:给定字符串在com上为空或null。谷歌。Androidgms。常见的内部的先决条件。checkNotEmpty(com.google.android.gms:play services base@@17.1.0:5)在com上。谷歌。火力基地。啊。FirebaseAuth。sendPasswordResetEmail(com.google.firebase:firebase auth@@21.0.1:1)位于。康塔。爆米花屋。重置PSW 1美元。Android上的onClick(resetpsw.java:37)。看法看法android上的performClick(View.java:7448)。看法看法android上的performClickInternal(View.java:7425)。看法看法在Android上获得3600美元(View.java:810)。看法查看$PerformClick。在android上运行(View.java:28305)。操作系统。汉德勒。android上的handleCallback(Handler.java:938)。操作系统。汉德勒。android上的dispatchMessage(Handler.java:99)。操作系统。活套。android上的loop(Looper.java:223)。应用程序。活动线程。java上的main(ActivityThread.java:7656)。朗,反思一下。方法在com上调用(本机方法)。Android内部的操作系统。RuntimeInit$MethodAndArgsCaller。在com上运行(RuntimeInit.java:592)。Android内部的操作系统。合子体。main(ZygoteInit.java:947)

我真的不知道为什么这个条件是真的,即使字符串是空字符串。有人能帮我吗?非常感谢。

共有1个答案

吴胜涝
2023-03-14

使用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));
 类似资料:
  • 我得到的输出是: 有人能解释一下是怎么回事吗?我在互联网上看到了很多这样的例子,它们看起来都很好。但在这里,文本没有被解密。 ps:我使用的版本是

  • 我有一个jsp页面,其中有一个下载链接。单击该链接时,它将调用一个servlet downloadservlet,该servlet从数据库获取要下载的文件。但问题是我发送给servlet的文件的标题包含空格。乙二醇= 我现在使用jsp文件下载pdf。此处pdf已下载,但无法打开。任何人都可以建议对代码进行任何更改。 下载jsp jsp页面

  • 问题内容: 如何检查字符串是否不为null? 问题答案: 通过检查是否为空 如果您要检查其是否为空或为空-您需要 我更喜欢使用commons-lang

  • 以下是我如何发送: 或者像这样(两者都试过): 在接收端,如果我访问$\u POST,则它是空的。如果我访问文件\u获取\u内容('php://input“),然后它包含我的json。 这是怎么回事?

  • 我有一个Android应用程序,与Spring开发的RESTAPI联系。应用程序很好地序列化了一个对象,但是Spring应用程序在每个字段不为null时将其解析为null。有什么不对劲?我该怎么办? 这是REST API方法签名:cambioPassword(@quiestHeader(授权)字符串头,PasswordChange userData) 注意:应用程序和API都使用Gson(我没有在

  • 问题内容: 我有四个字符串,其中任何一个都可以为空。我需要将它们连接成一个字符串,并在它们之间留有空格。如果我使用: 如果为空,结果将是新字符串开头的空白。另外,如果和为空,则我有三个空格。 当我不需要空格时,如何轻松地加入它们? 问题答案: 通过在调用中使用,它将删除所有虚假元素。