Не удалось сохранить данные Firebase - PullRequest
0 голосов
/ 28 февраля 2019

Я пытался сохранить данные в базе данных.

Я использую полосу загрузки, чтобы указать процесс, тогда, если процесс сохранения будет успешным или неудачным, он предложит отклонить.

, но в моем кодебар загрузки не сбрасывает, я думаю, что это снова зацикливание.Вот мой код:

private EditText namalengkap, namapanggilan, nisn, kelas;
private Button btnsimpan, btnkeluar;
private ProgressDialog loadingBar;
private String nisnsiswa, kelassiswa, namasiswa, panggilansiswa;

Процесс сохранения начинается здесь:

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

метод "simpandata" перейдет к следующему коду:

private void simpandata() {
    namasiswa = namalengkap.getText().toString();
    panggilansiswa = namapanggilan.getText().toString();
    kelassiswa = kelas.getText().toString();
    nisnsiswa = nisn.getText().toString();

    if (TextUtils.isEmpty(namasiswa)) {
        Toast.makeText(this, "Ketik Nama Siswa", Toast.LENGTH_SHORT).show();
    } else if (TextUtils.isEmpty(panggilansiswa)) {
        Toast.makeText(this, "Ketik Nama Panggilan", Toast.LENGTH_SHORT).show();
    } else if (TextUtils.isEmpty(kelassiswa)) {
        Toast.makeText(this, "Ketik Nama Kelas Siswa", Toast.LENGTH_SHORT).show();
    } else if (TextUtils.isEmpty(nisnsiswa)) {
        Toast.makeText(this, "Ketik Nomor NISN Siswa", Toast.LENGTH_SHORT).show();
    } else {
        loadingBar.setTitle("Memasukan Data Siswa");
        loadingBar.setMessage("Silahkan Tunggu");
        loadingBar.setCanceledOnTouchOutside(false);
        loadingBar.show();

        verifikasisimpan();
    }
}

вПриведенная выше строка загрузки кода начинает отображаться, а затем переходит к методу «verifyikasisimpan» с этим кодом.

private void verifikasisimpan() {
    final DatabaseReference datasiswa;
    datasiswa = FirebaseDatabase.getInstance().getReference();
    datasiswa.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

              if (!(dataSnapshot.child("Siswa").child(nisnsiswa).exists()))
             {

            HashMap<String, Object> siswadataMap = new HashMap<>();
            siswadataMap.put("nisnsiswa", nisnsiswa);
            siswadataMap.put("kelassiswa", kelassiswa);
            siswadataMap.put("namasiswa", namasiswa);
            siswadataMap.put("panggilansiswa", panggilansiswa);
            datasiswa.child("Siswa").child(nisnsiswa).updateChildren(siswadataMap)
                    .addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {

                            if (task.isSuccessful()) {
                                Toast.makeText(InputDataActivity.this, "Data Telah Tersimpan", Toast.LENGTH_SHORT).show();
                                loadingBar.dismiss();

                            } else {
                                Toast.makeText(InputDataActivity.this, "Penyimpanan Data Gagal, Silahkan Coba Lagi", Toast.LENGTH_LONG).show();
                                loadingBar.dismiss();
                            }
                        }
                    });
            }
            else {

                Toast.makeText(InputDataActivity.this,"Siswa  "+ namasiswa + " telah terdaftar.", Toast.LENGTH_SHORT).show();
                loadingBar.dismiss();
                Toast.makeText (InputDataActivity.this,"Silahkan Daftarkan Siswa Lain", Toast.LENGTH_SHORT).show();
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}

Я должен был показать тост при успехе или неудаче и закрыть загрузчик, но я думаю, что приложения не достигли«если задание выполнено успешно или неуспешно», строка загрузки продолжает отображаться, поэтому я отменяю ее, нажимая клавишу Backspace, я проверил базу данных, данные не сохраняются, где я их пропускаю,

PS: я скопировал процедуру измой предыдущий рабочий код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...