【问题标题】:How to delete the oldest child in Firebase Android?如何删除 Firebase Android 中最年长的孩子?
【发布时间】:2017-08-28 15:18:40
【问题描述】:

我想通过在每次添加新列表时删除列表中最旧的孩子来限制我的 Firebase 应用中的数据量。我搜索了答案的 JavaScript 版本,我想要答案的 android 版本。

这是我的数据结构:

   "team" : {
        "-KgoZM4NrImLNWVaUWks" : {
          "player_name" : "A",
          "timeStamp" : "1491235598092"
        },
        "-Kgo_2AkcqzoFr78lUUI" : {
          "player_name" : "B",
          "timeStamp" : "1491235778718"
        }
    }

我知道如何查询最旧的节点,但我应该怎么做才能删除该节点?

Query find_old_node_query = mDatabase.child("team").orderByChild("timeStamp").limitToLast(1);

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    请使用以下查询: Query find_old_node_query = mDatabase.child("team").orderByChild("timeStamp").equalsTo(teamId);

    其中teamId 是您使用push() 方法添加团队时产生的关键。 希望对您有所帮助!

    【讨论】:

      【解决方案2】:

      您可以在回调中获取节点的推送键后删除节点

      mDatabase.child("team").orderByChild("timeStamp").limitToLast(1).addListenerForSingleValueEvent(new ValueEventListener() {
                  @Override
                  public void onDataChange(DataSnapshot dataSnapshot) {
                        mDatabase.child("team").child(dataSnapshot.getKey()).removeValue();
                  }
      
                  @Override
                  public void onCancelled(DatabaseError databaseError) {
      
                  }
              });
      

      【讨论】:

        猜你喜欢
        • 2018-01-02
        • 2019-08-08
        • 2018-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多