брать данные из базы данных в реальном времени - PullRequest
0 голосов
/ 14 декабря 2018

Как мое приложение добавляет значения в базу данных реального времени:

 private void uploadFile() {
    if(imageUri != null){

        final StorageReference fileReference = storageReference.child(System.currentTimeMillis()
                + "." + getFileExtension(imageUri));

        storageTask = fileReference.putFile(imageUri);

        Task<Uri> urlTask = storageTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
            @Override
            public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                if (!task.isSuccessful()) {
                    throw task.getException();
                }
                // Continue with the task to get the download URL
                return fileReference.getDownloadUrl();
            }
        }).addOnCompleteListener(new OnCompleteListener<Uri>() {
            @Override
            public void onComplete(@NonNull Task<Uri> task) {
                if (task.isSuccessful()) {
                    Uri downloadUri = task.getResult();
                    String miUrlOk = downloadUri.toString();

                    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
                    final String kisiId = user.getUid().toString().trim();
                    final String kisiAd = user.getDisplayName().toString().trim();
                    final String urunIsim = editurunIsim.getText().toString().trim();
                    final String urunYorum = editUrunYorum.getText().toString();


                    Map<String,Object> values = new HashMap<String,Object>();
                    values.put("kisiId", kisiId);
                    values.put("kisiAd", kisiAd);
                    values.put("urunAdi", urunIsim);
                    values.put("yorum", urunYorum);
                    Kullanici kullanici = new Kullanici(kisiId, kisiAd, urunIsim,urunYorum,miUrlOk);
                    DatabaseReference dbRef = db.getReference("Kullanici");
                    String key = dbRef.push().getKey();
                    DatabaseReference databaseReference = db.getReference("Kullanici/" + key);
                    databaseReference.setValue(kullanici);

                    String referansinAnahtari=databaseReference.getKey().toString();

                    databaseReference.child("urunYorum").child(referansinAnahtari).setValue(values);




                    Toast.makeText(getActivity(), "Upload successful", Toast.LENGTH_LONG).show();


                } else {
                    // Handle failures
                    // ...
                }
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });

    }else{
        Toast.makeText(getActivity(), "No File selected", Toast.LENGTH_SHORT).show();
    }
}

Как мое приложение считывает значения из базы данных реального времени (часть):

            kullaniciList.clear();
            for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {

                Kullanici kullaniciModel = postSnapshot.getValue(Kullanici.class);
                kullaniciModel.setKey(postSnapshot.getKey());
                kullaniciList.add(kullaniciModel);
            }


            adapterr.setOnItemClickListener(anasayfaFragment.this);
            adapterr.notifyDataSetChanged();
            progressCircle.setVisibility(View.INVISIBLE);

моя отладка закрывается при запускеэто с отладкой.Я думаю, что это логическая ошибка.Как мне получить данные из базы данных в реальном времени?

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