【问题标题】:Android - Firebase | read all child data [closed]Android - Firebase |读取所有子数据[关闭]
【发布时间】:2017-07-14 09:08:08
【问题描述】:

我有一个这样的数据库

Large、Medium 和 Small 可以有任意数量的孩子(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);
            }
        }
    }

但我没有得到任何输出。我想不出还有什么方法可以遍历这些数据。

请帮忙

【问题讨论】:

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

标签: android json firebase firebase-realtime-database


【解决方案1】:

要解决这个问题,您需要更改此行:

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

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

这将解决您的问题。

【讨论】:

  • 很抱歉,这不起作用。 “小”可以有孩子,而“小”又可以有很多孩子。我想得到这些值
  • 当我再次阅读您的代码时,我得到了错误。请参阅我更新的答案。应该是:database.getReference().child("Small"); 有用吗?
  • 我进行了更改,但仍然没有输出。并且 getChildren 计数返回 0!
  • 不,我的错,它成功了!
  • 好的,Sapnesh。干杯!
猜你喜欢
  • 2017-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多