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