Как получить данные из базы данных Firebase Realtime? - PullRequest
1 голос
/ 15 июня 2019

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

public class ShowQuizActivity extends AppCompatActivity implements View.OnClickListener {

    final static int INTERVAL = 1000;
    final static int TIMEOUT = 7000;
    int progressvalue = 0;

    CountDownTimer mCountDown;

    int index = 0,score = 0,thisQuestion = 0,totalQuestion,correctAnswer;

    FirebaseDatabase database;
    DatabaseReference questions;

    ProgressBar progressBar;
    Button btnA,btnB,btnC,btnD;
    TextView txtQuestion,txtquestionNum,txtScore;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show_quiz);

        database = FirebaseDatabase.getInstance();
        questions = database.getReference("Question");

        txtQuestion = findViewById(R.id.question);
        txtquestionNum = findViewById(R.id.quNum);
        txtScore = findViewById(R.id.score);

        progressBar = findViewById(R.id.progressBar);

        btnA = findViewById(R.id.option1);
        btnB = findViewById(R.id.option2);
        btnC = findViewById(R.id.option3);
        btnD = findViewById(R.id.option4);

        btnA.setOnClickListener(this);
        btnB.setOnClickListener(this);
        btnC.setOnClickListener(this);
        btnD.setOnClickListener(this);

        loadQuestion(CommonModel.question);


    }

    private void loadQuestion(List<Question> question) {

        if (CommonModel.question.size() > 0)
            CommonModel.question.clear();



    }

вот мой класс CommonModel:

import java.util.ArrayList;
import java.util.List;

public class CommonModel {

    public static SignInUpModel currentUser;
    public static List<Question> question = new ArrayList<>();

}

класс вопросов здесь:

public class Question {

    private String answer,option1,option2,option3,option4,question;

    public Question() {

    }

    public Question(String answer, String option1, String option2, String option3, String option4, String question) {
        this.answer = answer;
        this.option1 = option1;
        this.option2 = option2;
        this.option3 = option3;
        this.option4 = option4;
        this.question = question;
    }

    public String getAnswer() {
        return answer;
    }

    public void setAnswer(String answer) {
        this.answer = answer;
    }

    public String getOption1() {
        return option1;
    }

    public void setOption1(String option1) {
        this.option1 = option1;
    }

    public String getOption2() {
        return option2;
    }

    public void setOption2(String option2) {
        this.option2 = option2;
    }

    public String getOption3() {
        return option3;
    }

    public void setOption3(String option3) {
        this.option3 = option3;
    }

    public String getOption4() {
        return option4;
    }

    public void setOption4(String option4) {
        this.option4 = option4;
    }

    public String getQuestion() {
        return question;
    }

    public void setQuestion(String question) {
        this.question = question;
    }
}

Структура базы данных:

enter image description here

Я не могу показать эти данные в своем приложении.Что я могу сделать? Я

1 Ответ

1 голос
/ 17 июня 2019

Согласно вашему комментарию, чтобы получить все вопросы, используйте следующие строки кода:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference questionRef = rootRef.child("Question");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        List<Question> questionList = new ArrayList<>();
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            Question q = ds.getValue(Question.class);
            questionList.add(q);
            String answer = q.getAnswer();
            String option1 = q.getOption1();
            String option2 = q.getOption2();
            String option3 = q.getOption3();
            String option4 = q.getOption3();
            String question = q.getQuestion();
            Log.d(TAG, answer + "/" + option1 + "/" + option2 + "/" + option3 + "/" + option4 + "/" + question);
        }

        //Do what you need to do with your list
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
    }
};
questionRef.addListenerForSingleValueEvent(valueEventListener);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...