从Firebase DB中简单读取子节点无法正常工作

时间:2016-08-13 20:02:48

标签: android json firebase firebase-realtime-database

这是我在Firebase实时数据库中的JSON树。我只想迭代并阅读questions下的所有项目。我想我在做一些愚蠢的错误。

在“我的应用程序”下 - 我有一个“问题”分支,并在其下保存了一堆数据。下面是树和我的代码。在代码中我指出了崩溃的部分。下面用红色圈出来是我想要阅读的内容。

enter image description here

public void readfromFireDB() {

    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference myRef = database.getReference().child("questions");

    // Read from the database
    myRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            **THIS IS THE ERROR, ques comes back as NULL**
            Question ques = dataSnapshot.getValue(Question.class);

            String key = dataSnapshot.getKey();

        }

        @Override
        public void onCancelled(DatabaseError error) {
        }
    });

}

此问题ques中的onDataChanged()作为空引用返回。可能是我没有正确访问questions下的孩子?

1 个答案:

答案 0 :(得分:2)

使用ValueEventListener您正在访问问题列表,而不是单个问题。

要访问每个问题,您需要循环快照:

public void onDataChange(DataSnapshot dataSnapshot) {
    for (DataSnapshot questionSnapshot: dataSnapshot.getChildren()) {
        Question ques = questionSnapshot.getValue(Question.class);
        String key = questionSnapshot.getKey();
    }
}