【问题标题】:java.lang.IllegalArgumentException: Given String is empty or nulljava.lang.IllegalArgumentException:给定字符串为空或为空
【发布时间】:2020-07-08 22:55:44
【问题描述】:

我是 firebase 新手,正在尝试创建登录代码。每次我尝试按下将字段留空的按钮时,应用程序都会崩溃,即使我已经编写了相同的代码。我在这里附上了相同的java代码。

MainActivity2.java

public class Main2Activity extends AppCompatActivity {

    private EditText email,password;
    private Button btn;
    private FirebaseAuth mAuth;
    private FirebaseAuth.AuthStateListener mAuthListener;

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

        mAuth = FirebaseAuth.getInstance();
        email = findViewById(R.id.editText2);
        password = findViewById(R.id.editText3);
        btn = findViewById(R.id.button2);


        mAuthListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                if(firebaseAuth.getCurrentUser() != null){
                    //means user has logged in
                    startActivity(new Intent(Main2Activity.this, New.class));

                }

            }
        };
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startSignin();
            }
        });
    }

    @Override
    protected void onStart() {
        super.onStart();

        mAuth.addAuthStateListener(mAuthListener);

    }

    private void startSignin(){
        String mail = email.getText().toString();
        String pass = password.getText().toString();

        //To make sure user field is not left blank
        if(TextUtils.isEmpty(mail)||TextUtils.isEmpty(pass)){
            Toast.makeText(Main2Activity.this,"Fields are empty",Toast.LENGTH_LONG).show();
        }

        mAuth.signInWithEmailAndPassword(mail,pass).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if(!task.isSuccessful()){ //user didnt login in successfully
                    Toast.makeText(Main2Activity.this,"Sign in Problem",Toast.LENGTH_LONG).show();
                }
            }
        });
    }

}

我在执行它给我的方法时遇到了问题:

2020-07-08 17:17:24.276 11020-11020/? E/example.fireap: Unknown bits set in runtime_flags: 0x8000
2020-07-08 17:17:24.957 11020-11020/? E/libc: Access denied finding property "ro.vendor.df.effect.conflict"
2020-07-08 17:17:25.381 11020-11020/com.example.fireapp E/GraphicExt: Can't load libboost_ext_fwk
2020-07-08 17:17:25.381 11020-11020/com.example.fireapp E/GraphicExt: GraphicExtModuleLoader::CreateGraphicExtInstance false
2020-07-08 17:17:25.410 11020-11167/com.example.fireapp E/gralloc: Arm Module v1.0
2020-07-08 17:17:25.411 11020-11167/com.example.fireapp E/ion: ioctl c0044901 failed with code -1: Invalid argument
2020-07-08 17:17:28.880 11020-11020/com.example.fireapp E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.fireapp, PID: 11020
    java.lang.IllegalArgumentException: Given String is empty or null

【问题讨论】:

    标签: java android json firebase-authentication


    【解决方案1】:

    如果您的某个字段为空,mAuth 代码仍将执行。如果你不想要这种行为,你必须在 if 分支之后添加 else。

    if(TextUtils.isEmpty(mail)||TextUtils.isEmpty(pass)){
            Toast.makeText(Main2Activity.this,"Fields are empty",Toast.LENGTH_LONG).show();
        }
    else {
        mAuth ...
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 2015-06-05
    相关资源
    最近更新 更多