Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法从嵌套的Firebase数据库中捕获值_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Java 无法从嵌套的Firebase数据库中捕获值

Java 无法从嵌套的Firebase数据库中捕获值,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我有一个firebase数据库,结构如下: 从本质上讲,我试图捕获“答案”的值。我正在运行以下代码: public void onDataChange(DataSnapshot dataSnapshot) { //should dump all of poll creators items in the following section of the current user Log.v("Da

我有一个firebase数据库,结构如下:

从本质上讲,我试图捕获“答案”的值。我正在运行以下代码:

 public void onDataChange(DataSnapshot dataSnapshot) {
                        //should dump all of poll creators items in the following section of the current user
                        Log.v("DataSnap", dataSnapshot.toString());
                        Log.v("DataSnap", dataSnapshot.child(USER_ID_LABEL).getValue().toString());
                        ArrayList<String > mPollAnswers = new ArrayList<>();
                        for (DataSnapshot y : dataSnapshot.child(ANSWERS_LABEL).getChildren()){
                            Log.v("ANSWER", y.getValue().toString());
                        }
public void onDataChange(DataSnapshot DataSnapshot){
//应转储当前用户的以下部分中的所有轮询创建者项目
Log.v(“DataSnap”,dataSnapshot.toString());
Log.v(“DataSnap”,dataSnapshot.child(USER_ID_LABEL).getValue().toString());
ArrayList mPollAnswers=新的ArrayList();
for(DataSnapshot y:DataSnapshot.child(ANSWERS\u LABEL.getChildren()){
Log.v(“ANSWER”,y.getValue().toString());
}
不幸的是,当我严格要求答案的值时,它同时返回“计票”和“答案”:


如果您可以访问顶级键,例如L3l1…,“answers”和“1”,firebase将以
哈希映射的形式返回结果对象,其中
对象可以是任何对象

FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
    firebaseDatabase.getReference("<top-level-key>")
            .child("L3l1...")
            .child("answers")
            .child("1")
            .addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    //Returns a hashmap with keys of type answer and vote_count
                    Object value = dataSnapshot.getValue(); /
                    Object o = ((HashMap) value).get("answer");
                    String s = "";
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });
在您的活动中或您称之为firebase的任何地方:

//In your Activity or Fragment or wherever you call Firebase
        firebaseDatabase.getReference("<top-level-key>")
            .child("L13a")
            .child("answers")
            .child("1")
            .addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {

                    Answer value = dataSnapshot.getValue(Answer.class);
                    //value.getAnswer() = "rstrrs"
                    //value.getVote_Count() = 0
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });
//在您的活动或片段中,或在您调用Firebase的任何位置
firebaseDatabase.getReference(“”)
.儿童(“L13a”)
.child(“答案”)
.儿童(“1”)
.addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
答案值=dataSnapshot.getValue(Answer.class);
//value.getAnswer()=“rstrrs”
//value.getVote\u Count()=0
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});

如果您可以访问顶级键,例如L3l1…,“answers”和“1”,firebase将以
哈希映射的形式返回结果对象,其中
对象可以是任何对象

FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
    firebaseDatabase.getReference("<top-level-key>")
            .child("L3l1...")
            .child("answers")
            .child("1")
            .addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    //Returns a hashmap with keys of type answer and vote_count
                    Object value = dataSnapshot.getValue(); /
                    Object o = ((HashMap) value).get("answer");
                    String s = "";
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });
在您的活动中或您称之为firebase的任何地方:

//In your Activity or Fragment or wherever you call Firebase
        firebaseDatabase.getReference("<top-level-key>")
            .child("L13a")
            .child("answers")
            .child("1")
            .addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {

                    Answer value = dataSnapshot.getValue(Answer.class);
                    //value.getAnswer() = "rstrrs"
                    //value.getVote_Count() = 0
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });
//在您的活动或片段中,或在您调用Firebase的任何位置
firebaseDatabase.getReference(“”)
.儿童(“L13a”)
.child(“答案”)
.儿童(“1”)
.addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
答案值=dataSnapshot.getValue(Answer.class);
//value.getAnswer()=“rstrrs”
//value.getVote\u Count()=0
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});

如果您再给我一些时间,我可以为您正确地强制转换变量我修改了AnswerInterest在您的answer类上-问题是我已经有一个Polll类建模并映射到Firebase JSON…..不确定这是否会影响answer类您可以按照您的业务规则对该类建模我必须做的是,正如你所说的,直接映射到Firebase JSON树结构。如果你给我更多的时间,我可以为你正确地转换变量我修改了我的AnswerInterest在你的answer类上-问题是我已经有一个Polll类建模并映射到Firebase JSON…不确定这是否会影响你可以选择的answer类l该类无论哪种方式对您的业务规则都有意义。您所要做的就是将其直接映射到Firebase JSON树结构。