UMM-2020-logic-computation / tugas-besar-2c

Project Tugas Besar Informatika 2C 2020 | Logika Komputasi UMM
https://bit.ly/kerjain-app
6 stars 0 forks source link

Login button delay #3

Closed akbarsaputrait closed 4 years ago

akbarsaputrait commented 4 years ago

Ketika login, pertama klik, login gagal, lalu dicoba beberapa klik, lalu login berhasil. Apa bisa di handle biar pas button di klik, baru dia request firebase, lalu dapet response baru bisa ditentukan login gagal atau tidak?

noersy commented 4 years ago

Ketika login, pertama klik, login gagal, lalu dicoba beberapa klik, lalu login berhasil. Apa bisa di handle biar pas button di klik, baru dia request firebase, lalu dapet response baru bisa ditentukan login gagal atau tidak?

itu karena EventListener ada di button In. di EventListener ada Thread baru, untuk mengdownload data dari database membutuhkan sedikit waktu. Ada seikit gab antara keduanya.

Seharusnya nanti setelah download dulu datanya, terus di bandingkan data-nya.

Cara memperbaikinya gampang. Perbadingan string-nya di masukan di Thread EventListener Firebase. Jadi nanti datanya di temukan baru coding perbandingan dijalankan.

//yang ini pindah

if (nimTextField.getText().equalsIgnoreCase(nim)) { st.setText("Login Berhasil"); } else { st.setText("Login Gagal"); }

//di sini

if(dataSnapshot.hasChild(nimTextField.getText())){ nim = dataSnapshot.child(nimTextField.getText()).child("nim").getValue(String.class); System.out.println(nim); <--- dari sini }

noersy commented 4 years ago

Btw, mungkin kita juga bisa tambahkan load screen. Jadi thread awal di pending dulu, setelah itu code perbandinganya di jalankan.

jadi ada waktu untuk download. (Pengen tambah gambar gif)

akbarsaputrait commented 4 years ago

Ketika login, pertama klik, login gagal, lalu dicoba beberapa klik, lalu login berhasil. Apa bisa di handle biar pas button di klik, baru dia request firebase, lalu dapet response baru bisa ditentukan login gagal atau tidak?

itu karena EventListener ada di button In. di EventListener ada Thread baru, untuk mengdownload data dari database membutuhkan sedikit waktu. Ada seikit gab antara keduanya.

Seharusnya nanti setelah download dulu datanya, terus di bandingkan data-nya.

Cara memperbaikinya gampang. Perbadingan string-nya di masukan di Thread EventListener Firebase. Jadi nanti datanya di temukan baru coding perbandingan dijalankan.

//yang ini pindah

if (nimTextField.getText().equalsIgnoreCase(nim)) { st.setText("Login Berhasil"); } else { st.setText("Login Gagal"); }

//di sini

if(dataSnapshot.hasChild(nimTextField.getText())){ nim = dataSnapshot.child(nimTextField.getText()).child("nim").getValue(String.class); System.out.println(nim); <--- dari sini }

aku coba ini, memang jalan, tapi setText login nya ndak muncul, namun System.out.println nya jalan

noersy commented 4 years ago

aku coba ini, memang jalan, tapi setText login nya ndak muncul, namun System.out.println nya jalan

oh iyah lupa. Karena thread baru jadi untuk meng-update ui harus pake

Platform.runLater(() -> { // <--- isi coding untuk mengupdate ui, contoh setText(); });

btw, gif login lagi onprogres

akbarsaputrait commented 4 years ago

aku coba ini, memang jalan, tapi setText login nya ndak muncul, namun System.out.println nya jalan

oh iyah lupa. Karena thread baru jadi untuk meng-update ui harus pake

Platform.runLater(() -> { // <--- isi coding untuk mengupdate ui, contoh setText(); });

btw, gif login lagi onprogres

Worked! thankss @NoerSy