美好的一天,我正在使用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个选项时,如上面的数据库结构所示,我的应用程序停止工作。
所有帮助将受到高度赞赏。
答案 0 :(得分:0)
我仍然没有理解您为什么要计算孩子,但您可能有兴趣使用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) {
}
});