簡體   English   中英

在某些條件下從firebase數據庫中檢索數據

[英]Retrieve data from firebase database with certain conditions

美好的一天,我正在使用Android工作室創建一個基於問題和答案的游戲,我有兩件事我正在努力。 我有一個具有以下結構的firebase數據庫:

database name{
    answers{
         1{
            answer_option_1: .....
            answer_option_2: .....
            answer_option_3: .....
            answer_option_4: .....
           }
         2{
            answer_option_1: .....
            answer_option_2: .....
          }

因此它繼續類似於上面顯示的結構。 我的問題是關於如何檢索答案選項並將它們存儲在各自的變量中? 如:

選項1 = answer_option_1

有沒有辦法計算父母下的孩子數量,比如,應該告訴我,在父母2下,有2個孩子?

我檢索單個值的代碼如下:

 mDatabase.child("answers").child(num).child("answer_option_1").addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            Option1 = dataSnapshot.getValue().toString();
            option1.setText(Option1);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

其中mDatabase是對我的Firebase數據庫的引用, num是一個隨機值,用於檢索隨機問題。 我已經為4個選項重復了上面的代碼4次,但是當我有2個選項時,如上面的數據庫結構所示,我的應用程序停止工作。

所有幫助將受到高度贊賞。

我仍然沒有得到你為什么要計算孩子,但你可能有興趣使用ChildEventListener來獲取/answers/num每個孩子的回調。

設置一個跟蹤選項的列表:

List<String> options = new ArrayList<>();

在加載視圖或其他任何內容時確保啟動監聽器:

 mDatabase.child("answers").child(num).addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot) {
            String option = dataSnapshot.getValue().toString();
            options.add(option);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM