[英]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.