Firebase DB:检查节点是否没有子节点?

时间:2016-12-15 01:09:18

标签: android firebase firebase-realtime-database

如何确定Firebase数据库节点是否没有子节点?似乎获取数据的唯一方法是使用侦听器,并且只有在添加或删除某些内容时才会触发。换句话说,如果没有孩子,就什么都不会发生。

2 个答案:

答案 0 :(得分:4)

您可以使用addValueEventListener,在onDataChange中,您可以通过某种方式检查没有孩子。
addValueEventListener将起作用,因为对此docs进行了编码

  

此方法在连接侦听器时再次触发   每次包括儿童在内的数据都会发生变化

ref.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot snapshot) {
        // As cricket_007 we also can use hasChildren or getChildrenCount
        if(!snapshot.hasChildren()){
            // db has no children
        }

        // OR this way
        if(snapshot.getChildrenCount() == 0){
            // db has no children
        }

        // OR this way
        for (DataSnapshot postSnapshot : snapshot.getChildren()) {
            // db has no children
        }
    }

    @Override
    public void onCancelled(FirebaseError firebaseError) {
    }
});

答案 1 :(得分:2)

您可以使用child的{​​{1}}或Firebase方法检查getChildrenCount()中是否存在exists()

DataSnapshot

有关详细信息,请参阅此doc。我希望这会对你有所帮助。