Android - Firebase |阅读所有的子数据

问题描述:

我有这样的数据库enter image description hereAndroid - Firebase |阅读所有的子数据

大,中,小可以有任何数量的孩子(abc,xyz等)。我想读一个给定节点的所有孩子(比如小)。

final FirebaseDatabase database = FirebaseDatabase.getInstance(); 
DatabaseReference myRef = database.getReference("small"); 

// Read from the database 
myRef.addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     // This method is called once with the initial value and again 
     // whenever data at this location is updated. 
     Log.i("Info","Data changed"+Long.toString(dataSnapshot.getChildrenCount())); 

     for (DataSnapshot dis : dataSnapshot.getChildren()) { 
      for (DataSnapshot vers : dis.getChildren()) { 
       String value = vers.getValue(String.class); 
       Log.d("debug", "Value is: " + value); 
       toaster(value); 
      } 
     } 
    } 

但是我没有输出。我无法想象如何遍历这些数据。

请帮

+0

你的代码使用'small',数据库有'Small'。由于Firebase区分大小写,因此两个字符串并不相同。如果您在代码中使用相同的大小写,它将起作用。投票结束为错字。 –

为了解决这个问题,你需要改变这一行:

DatabaseReference myRef = database.getReference("small"); 

DatabaseReference myRef = database.getReference().child("Small"); 

这将解决您的问题。

+0

我很抱歉,但没有奏效。 “小”可以有孩子,反过来可以有很多孩子。我想获得这些值 –

+0

当我再次阅读你的代码时,我得到了错误。请看我更新的答案。它应该是:'database.getReference()。child(“Small”);'它工作吗? –

+0

我做了改变,但仍然没有输出。并且getChildren计数返回0! –