第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 firebase Toast 消息檢查電子郵件和密碼的 EditTexts 是否為空

使用 firebase Toast 消息檢查電子郵件和密碼的 EditTexts 是否為空

慕哥9229398 2022-10-12 10:09:52
我在嘗試登錄之前檢查EditText etEmailandetPass是否為空,但我不知道這是否會導(dǎo)致我使用 firebase 的 toast 消息出現(xiàn)問題task.getException().getMessage()這是錯誤消息:方法調(diào)用“ getMessage”可能會產(chǎn)生'java.lang.NullPointerException'我已經(jīng)嘗試將它從 else 語句中取出并移動它正在工作。我有一個SignUp.class按預(yù)期工作的firebase.getException().getMessage()TheSignUp.class不檢查 EditTexts 是否為空,所以這可能與問題有關(guān)。我創(chuàng)建了一個方法來根據(jù) EditTexts 是否為空來返回 true 或 false(passStr 與etPass.getText().toString()if 語句中的第二個總是返回 true 或總是 false 相同,所以我這樣做是為了讓它更容易,因為我不知道最好的方法)。public Boolean checkEmpty(){    status = false;    passStr = etPass.getText().toString();    emailStr = etEmail.getText().toString();   if((etPass.getText().toString().isEmpty() && etEmail.toString().isEmpty()) ||          (passStr.isEmpty()) || (emailStr.isEmpty()) ) {            status = false;    }    else{        status = true;    }    return status;}在它使用的 onCreate 方法內(nèi)部    if(checkEmpty().equals(true)) {        firebaseAuth.signInWithEmailAndPassword(        etEmail.getText().toString(),        etPass.getText().toString())        .addOnCompleteListener(new OnCompleteListener<AuthResult>() {            @Override            public void onComplete(@NonNull Task<AuthResult> task) {                //this starts activity if able to sign in                if (task.isSuccessful()) {                    Toast.makeText(Login.this, "Login Successful",                                 Toast.LENGTH_LONG).show();                    startActivity(new Intent(Login.this,                                MainActivity.class));                }                else {                    //if task unsuccessful it should show firebase toast messages                    Toast.makeText(Login.this, task.getException().getMessage(),                    Toast.LENGTH_LONG).show();                       //this getMessage does not work due to error above                }            }        });
查看完整描述

4 回答

?
MM們

TA貢獻(xiàn)1886條經(jīng)驗 獲得超2個贊

我認(rèn)為錯誤非常明顯。調(diào)用getMessage()可能為 null,因為task.getException()可能返回 null。


在調(diào)用之前,您應(yīng)該確保任務(wù)異常不為空getMessage():


if (task.isSuccessful()) {

    ...

} else {

    Throwable taskException = task.getException();


    // Before invoking getMessage() on the exception,

    // we make sure the exception is not null

    if (taskException != null) {

        Toast.makeText(Login.this, taskException.getMessage(), Toast.LENGTH_LONG).show();

    }

}

為了您的信息,您可能還應(yīng)該在制作和顯示吐司之前檢查異常消息是否不為空。


查看完整回答
反對 回復(fù) 2022-10-12
?
哆啦的時光機(jī)

TA貢獻(xiàn)1779條經(jīng)驗 獲得超6個贊

您的代碼似乎是正確的

嘗試使用try/catch()子句


查看完整回答
反對 回復(fù) 2022-10-12
?
POPMUISE

TA貢獻(xiàn)1765條經(jīng)驗 獲得超5個贊

您必須對方法進(jìn)行一些更改:-


這是檢查edittext是否為空:-


public Boolean checkEmpty(EditText edittext) {

        if (edittext.getText().toString().isEmpty()){

            return true;

        }else{

            return false;

        }

    }

這是在您的 onCreate 方法中:-


if(checkEmpty(etEmail)) {

            Toast.makeText(StartActivity.this, "Email is empty", Toast.LENGTH_SHORT).show();

        }else if(checkEmpty(etPass)){

            Toast.makeText(StartActivity.this, "password is empty", Toast.LENGTH_SHORT).show();

        }else {

            firebaseAuth.signInWithEmailAndPassword(

                    etEmail.getText().toString(),

                    etPass.getText().toString())

                    .addOnCompleteListener(new OnCompleteListener<AuthResult>() {

                        @Override

                        public void onComplete(@NonNull Task<AuthResult> task) {

                            //this starts activity if able to sign in

                            if (task.isSuccessful()) {

                                Toast.makeText(Login.this, "Login Successful",

                                        Toast.LENGTH_LONG).show();

                                startActivity(new Intent(Login.this,

                                        MainActivity.class));

                            } else {

                                //if task unsuccessful it should show firebase toast messages

                                Toast.makeText(Login.this, task.getException().getMessage(),

                                        Toast.LENGTH_LONG).show();

                                //this getMessage does not work due to error above

                            }

                        }


                    });

        }


查看完整回答
反對 回復(fù) 2022-10-12
?
大話西游666

TA貢獻(xiàn)1817條經(jīng)驗 獲得超14個贊

我已經(jīng)改進(jìn)了我的代碼,我非常感謝所有幫助我理解更多的答案。我已經(jīng)完全擺脫了該checkEmpty()方法,并選擇在我的 onClickListener 中定義每個 editText。


passStr = etPass.getText().toString();

emailStr = etEmail.getText().toString();

然后在 if 和 else if 語句中使用


 if (**emailStr**.isEmpty()) 

 else if (**passStr**.isEmpty())

帶有“請輸入密碼”和“請輸入電子郵件地址”的吐司消息。


注冊完成后(它使用 a.addOnCompleteListener(task)來檢查firebaseAuth.signInWithEmailAndPassword()),它會執(zhí)行以下操作:


                            if (task.isSuccessful()) {

                            Toast.makeText(LoginActivity.this, "Login Successful", Toast.LENGTH_LONG).show();

                            startActivity(new Intent(LoginActivity.this, Home.class));

                        } else {

                            Throwable taskException = task.getException();

                            if (taskException != null) {

                                Toast.makeText(LoginActivity.this, task.getException().getMessage(),

                                        Toast.LENGTH_LONG).show();

                            }

                        }

因此,它在顯示 firebase toast 消息之前首先檢查輸入字段是否為空。我意識到我使用 checkEmpty 方法過于復(fù)雜了,因為我需要做的就是將每一個定義為 onClickListener 中的字符串。我不需要編寫新方法,因為我沒有在其他任何地方使用它。


查看完整回答
反對 回復(fù) 2022-10-12
  • 4 回答
  • 0 關(guān)注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號