【问题标题】:Firebase realtime database:How to get ChildrenCount when using AddChildEventListener?Firebase 实时数据库:使用 AddChildEventListener 时如何获取 ChildrenCount?
【发布时间】:2019-03-25 15:52:49
【问题描述】:

我想做的是使用AddChildEventListener 获取孩子的数量,就像我们可以使用addListenerForSingleValueEvent 一样。

我是说

thisRoom.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        int numberOfPlayers = (int) dataSnapshot.getChildrenCount();

现在我可以得到 thisRoom 的孩子,但我想知道是否有办法使用 AddChildEventListener 来做同样的事情。

【问题讨论】:

    标签: java android firebase firebase-realtime-database


    【解决方案1】:

    在firebase firestore中,我们可以调用一个方法datasnapshot.size();,它返回一个Int值,你可以在firebase实时试试这个。希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      ChildEventListener 中的方法在单个子节点上触发,并且不携带整个结果的信息。获取ChildEventListener 中子节点计数的唯一方法是保留您自己的计数器,在onChildAdded 中增加它,并在onChildRemoved 中减少它。这为您提供了一个运行计数器:一个反映您的客户端代码已经处理了多少孩子的数字。

      要获得孩子的绝对数量,请使用ValueEventListener。请注意,将ChildEventListenerValueEventListener 附加到同一位置/查询只会传输一次数据。因此,附加两种类型的侦听器不会有任何损失,每个用例一个。

      另见:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-22
        • 1970-01-01
        • 2022-08-19
        • 2022-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多