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

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

private FirebaseDatabase database=FirebaseDatabase.getInstance();
private DatabaseReference 
quizRef=database.getReference("Quiz").child("Questions");
quizRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot ds:dataSnapshot.getChildren())
            {
                ModelClass modelClass=new ModelClass();
                modelClass.setQues(ds.child("question1").getValue(ModelClass.class).getQues());
                modelClass.setAns(ds.child("question1").getValue(ModelClass.class).getAns());

                textViewQuestionText.setText(modelClass.getQues());
            }
        }

        @Override
        public void onCancelled(DatabaseError error) {
            textViewQuestionText.setText("Error occurred");

        }
    });

enter image description here

Ответы [ 3 ]

0 голосов
/ 27 сентября 2018

Испытано и проверено.Вам не нужно проверять такие ключи, как вопрос1, вопрос2 и т. Д.

       FirebaseDatabase    database = FirebaseDatabase.getInstance();
        DatabaseReference reference = database.getReference("Quiz/Questions");
        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                for (DataSnapshot ds: dataSnapshot.getChildren()) {

                    ModelClass modelClass = (ds.getValue(ModelClass.class));
                    modelClass.getAns();
                    modelClass.getQes();
                    // fetch any key value pair
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

Я рекомендую использовать сгенерированные в Firebase хеш-ключи вместо ваших собственных ключей, таких как вопрос1, вопрос2 и т. Д.

Отметьте это

0 голосов
/ 27 сентября 2018

Для чтения или записи данных из базы данных вам необходим экземпляр DatabaseReference:

private DatabaseReference mDatabase;
// ...
mDatabase = FirebaseDatabase.getInstance().getReference();

Чтобы прочитать данные в пути и прослушать изменения, используйте метод addValueEventListener () или addListenerForSingleValueEvent () длядобавить ValueEventListener в DatabaseReference.

Вы можете использовать метод onDataChange () для чтения статического снимка содержимого по заданному пути, поскольку они существовали во время события.

Для получения дополнительной информации вы можете обратиться к документам Firebase

0 голосов
/ 27 сентября 2018

Вы можете просто использовать данные из вашей базы данных Firebase напрямую, используя следующий код:

DatabaseReference q1Ref = quizRef.child("question1");
q1Ref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            String question = dataSnapshot.child("ques").getValue(String.class);
            String answer = dataSnapshot.child("ans").getValue(String.class);
            int ansBy = dataSnapshot.child("answeredBy").getValue(Integer.class);

            // now you can do what you want with the values stored in the variables
        }

        @Override
        public void onCancelled(DatabaseError error) {
            textViewQuestionText.setText("Error occurred");

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