Firebase UI 3.2.1,FirebaseRecylcAdapter,检查数据库引用是否有子项

Firebase UI 3.2.1,FirebaseRecylcAdapter,检查数据库引用是否有子项,firebase,firebase-realtime-database,firebaseui,Firebase,Firebase Realtime Database,Firebaseui,既然FirebaseRecyclerAdapter允许我们重写方法,那么我们是否有任何方法可以被重写以检查数据库引用节点下是否存在子节点?如果没有孩子,我们应该能够相应地更新UI 直到现在,我们还没有办法实现它,除非我们将EventListener单独附加到Ref节点,并检查DataSnapshot是否有任何子节点,这只是开销,我认为是冗余任务 非常感谢您的帮助。谢谢大家! 如果我理解您的问题,您在firebase中有一个节点ref,它列出了项目,您想检查这些项目的子项是否存在 如果这是您的情况

既然FirebaseRecyclerAdapter允许我们重写方法,那么我们是否有任何方法可以被重写以检查数据库引用节点下是否存在子节点?如果没有孩子,我们应该能够相应地更新UI

直到现在,我们还没有办法实现它,除非我们将EventListener单独附加到Ref节点,并检查DataSnapshot是否有任何子节点,这只是开销,我认为是冗余任务


非常感谢您的帮助。谢谢大家!

如果我理解您的问题,您在firebase中有一个节点ref,它列出了项目,您想检查这些项目的子项是否存在

如果这是您的情况,请遵循以下步骤:

假设您的数据结构如下所示:

    AnyNode
    | 
    item1
    |------name="some name"

     -----description="some description"

    item2
     |------name="some name"

     -------description="some description"
     //in OnBindViewHolder

      if(model.getName() ==null){
       //name doesn't exist

       }else{
        //name exist
        } 


        if(model.getDescription() ==null){
       //description doesn't exist

       }else{
        //description exist
        }
如果您现在将DataReference作为任意节点传递给firebase回收器适配器,则这意味着您要列出item1然后列出item2。。。。。我想你知道怎么做

现在,您的问题必须是知道是否存在名称或描述

因此,在适配器的OnBindViewHolder中检查如下:

    AnyNode
    | 
    item1
    |------name="some name"

     -----description="some description"

    item2
     |------name="some name"

     -------description="some description"
     //in OnBindViewHolder

      if(model.getName() ==null){
       //name doesn't exist

       }else{
        //name exist
        } 


        if(model.getDescription() ==null){
       //description doesn't exist

       }else{
        //description exist
        }
model是POJO类的名称


希望能有帮助

一段时间以来,为了这个目的,有一个onDataChanged方法:谢谢。这对我很有帮助。谢谢你花时间回答!我的问题是,如果item1和item2都不存在,我应该能够显示一些消息或progressBar。并且应该在不向AnyNode添加额外的eventListener的情况下完成。