Firebase Android получить все из таблицы - PullRequest
0 голосов
/ 19 мая 2019

Мне нужна помощь. У меня есть база данных в реальном времени в firebase. Мне нужно принести все записи из этой таблицы. После настройки соединения я попробовал команду:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = rootRef.child("rlmb-loterias");

Мне нужно все содержимое таблицы и создать массив или JSON

example my databe strucure

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

Чтобы получить ключи и соответствующие значения, вам нужно прикрепить слушатель к вашей ссылке. Предполагая, что rlmb-loterias узел не является вашим корневым узлом, используйте следующие строки кода:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference rlmbLoteriasRef = rootRef.child("rlmb-loterias");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String key = ds.getKey();
            String value = ds.getValue(String.class);
            Log.d(TAG, key + " / " + value);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
    }
};
rlmbLoteriasRef.addListenerForSingleValueEvent(valueEventListener);

Если ваш rlmb-loterias узел является вашим корневым ключом, просто подключите прослушиватель к rootRef:

rootRef.addListenerForSingleValueEvent(valueEventListener);
0 голосов
/ 20 мая 2019

сначала вы должны получить все ключи, а затем вы можете получить табличные значения следующим образом: -

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = rootRef.child("rlmb-loterias");

usersRef .addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        for (DataSnapshot snap : dataSnapshot.getChildren()){
                             usersRef.child(snap.getKey()).addListenerForSingleValueEvent(new 
                                       ValueEventListener() {
                                       @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        String data = dataSnapshot.getValue();
                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {
                             //enter code here
                    }
                });

                        }
                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {
                             //enter code here
                    }
                });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...