检查一个节点中每个孩子的存在的最佳方法是什么? [英] What is the best way to check the existence of every child in one node?

查看:59
本文介绍了检查一个节点中每个孩子的存在的最佳方法是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

FirebaseDatabase.getInstance().getReference("Block").addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot snap : dataSnapshot.getChildren()) {
            if(snap.getKey().equals(myUID)){
                FirebaseDatabase.getInstance().getReference("Block").child(myUID).addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        for (DataSnapshot snap : dataSnapshot.getChildren()) {
                            if(snap.getKey().equals(list.get(position).getUid())){
                                FirebaseDatabase.getInstance().getReference("Block").child(myUID).child(list.get(position).getUid()).addValueEventListener(new ValueEventListener() {
                                    @Override
                                    public void onDataChange(DataSnapshot dataSnapshot) {
                                        for (DataSnapshot snap : dataSnapshot.getChildren()) {
                                            if(snap.getValue().equals("1")){
                                               call_method();
                                            }else{

                                              //code...
                                            }
                                        }
                                    }

                                    @Override
                                    public void onCancelled(DatabaseError databaseError) {

                                    }
                                });

                            } else {
                               call_method();
                            }
                        }
                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {

                    }
                });
            } else {
               call_method();
            }
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
});

此代码可以很好地工作,但是它很长,所以我要寻求最佳的编写方式吗?

This code works well, but it is very long so I am asking for the best way to write it ?

我想首先检查阻止节点的子节点是否等于我的UID ,如果是,那么我要检查我的UID 子项等于 UID (如果为true),那么我想获得的块值在此示例中为 0

I want to check firstly if Block node has child equals to my UID if it is true then I want to check if my UID has child equals to specific UID if it is true then I want to get the value of block which is 0 in this example

我该怎么做?非常感谢.

How can I do that ? Thank you very much.

推荐答案

只需遍历使用child指定的路径.如果路径不存在,将不会获得任何数据.

Just traverse to the path specified using child. You will get no data if the path doesn't exist.

FirebaseDatabase.getInstance().getReference("Block")
    .child("MyUUID")
    .child("specificUUID")
    .addValueEventListener(new ValueEventListener() {

        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if(dataSnapshot.exists()) {
                // ... Do something
            } else {
                call_method();
            }
       // ... Other code
}

这篇关于检查一个节点中每个孩子的存在的最佳方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆