簡體   English   中英

java.lang.IllegalArgumentException:給定字符串為空或空點擊注冊

[英]java.lang.IllegalArgumentException: Given String is empty or null onClick signup

每當我點擊注冊錯誤 java.lang.IllegalArgumentException:
給定字符串為空或 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));
        }
    });

}

日志貓

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 is = 為 null,它將顯示提示用戶輸入他們的電子郵件和密碼的吐司。

我只是編程的初學者。

不用擔心,這很簡單。 當您進一步了解時,請將您的 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM