Closed akbarsaputrait closed 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 }
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)
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
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
aku coba ini, memang jalan, tapi setText login nya ndak muncul, namun
System.out.println
nya jalanoh 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
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?