Firebase 数据库得到的特定级别的儿童android

标签: Android
发布时间: 2016/10/10 21:11:24
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

以下数据库结构在 Firebase :enter image description here

在我的应用程序启动时 activity 。我想要得到所有 level0Node 的节点只有一次当 activity 开始。这我实现像这样︰

rootNode.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                Iterable<DataSnapshot> level0Nodes = dataSnapshot.getChildren();
            }

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

但我面临的问题是,如果任何更新发生在 level1NodeonDataChanged 是被再次调用,我不想。我如何可以做到这一点?

解决方法 1:

你正在寻找 SingleValueListener

取代你 ValueEventListener 人,代码将如下所示︰

rootNode.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Iterable<DataSnapshot> level0Nodes = dataSnapshot.getChildren();
        }

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

更多的信息请参阅官方文档

赞助商