Чтение данных из базы данных Firebase в реальном времени в текстовое представление - PullRequest
1 голос
/ 11 октября 2019

Я хочу прочитать из базы данных Firebase в реальном времени и установить извлеченные данные в текстовом виде, вот что я попробовал до сих пор.

     private DatabaseReference buckybarnz;
 .........
buckybarnz =  FirebaseDatabase.getInstance().getReference().child(userID).child("chel_sea");
  ValueEventListener eventListener = buckybarnz.addValueEventListener(new ValueEventListener() {
 @Override
 public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
    if (dataSnapshot1 != null) {
        DRive dRive = dataSnapshot1.getValue(DRive.class);
        if (dRive != null) {
            String receipt = dRive.getExt_ref().trim();
            String text = dRive.getTxt_Ref().trim();

            chalwe.setText(text);
            johns.setText(receipt);

        } else {
            String a = "no pending refunds available";
            anthony.setText(a);
            chalwe.setText(a);
            johns.setText(a);
        }
    } else {
            String a = "no pending refunds available";
            anthony.setText(a);
            chalwe.setText(a);
            johns.setText(a);
}
}

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

}
});

Ничего не работает, даже если в базе данных есть данныеничего не происходит с textviews.

Пожалуйста, помогите, как лучше всего решить эту проблему, даже решение с использованием метода класса строки будет полезным. Ниже приведен вид моей базы данных это вид моей базы данных, BSQ .... как идентификатор пользователя ] 1

Ответы [ 2 ]

0 голосов
/ 11 октября 2019

Прежде всего вам не нужно писать цикл for, и это должен быть ваш отредактированный код в методе onChildAdded () моего кода:

if (dataSnapshot != null) {
        DRive dRive = dataSnapshot.getValue(DRive.class);
        if (dRive != null) {
            String receipt = dRive.getExt_ref().trim();
            String text = dRive.getTxt_Ref().trim();

            chalwe.setText(text);
            johns.setText(receipt);

        } else {
            String a = "no pending refunds available";
            anthony.setText(a);
            chalwe.setText(a);
            johns.setText(a);
        }
    } else {
            String a = "no pending refunds available";
            anthony.setText(a);
            chalwe.setText(a);
            johns.setText(a);
}
}

Надеюсь, это работает

0 голосов
/ 11 октября 2019

Я обращался к базе данных иначе, чем вы:

Firebase.setAndroidContext(this);
       Firebase reference1 = new Firebase("https://project-id.firebaseio.com/messages/");  //replace project-id by your project-id
            reference1.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {

                System.out.println("reference4: data snapshot key"+dataSnapshot.getKey()+"");

                //your code
            }

            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {

            }
        });

Надеюсь, это поможет

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