【问题标题】:How to get largest number from Firebase datalist如何从 Firebase 数据列表中获取最大的数字
【发布时间】:2020-05-22 17:08:18
【问题描述】:

我正在使用 Firebase 数据库,我有很多节点,每个节点都有一个不同且唯一的编号

这是我用来检索Id's的代码

for (DataSnapshot homework : homeworkChildren) {
                    NewsModel c = homework.getValue(NewsModel.class);
                    Log.e("MAX_VALU", String.valueOf(c.getId()));
                }

什么我的c.getId() 回我

我只想要所有 ID 中的一个最大 ID

【问题讨论】:

    标签: java android firebase firebase-realtime-database integer


    【解决方案1】:

    要解决这个问题,您可以使用以下代码行:

    List<Integer> ids = new ArrayList<>();
    for (DataSnapshot homework : homeworkChildren) {
        NewsModel c = homework.getValue(NewsModel.class);
        ids.add(c.getId());
    }
    int max = Collections.max(ids);
    Log.e("MAX_VALU", String.valueOf(max));
    

    根据您的示例,您的 logcat 中的结果将是:

    3
    

    【讨论】:

      【解决方案2】:

      在顶部声明一个变量。 var max = 0。 确保您的 c.getId() 永远不会返回 0

      现在在 for 循环中,你可以做这样的事情。

      for(DataSnapshot homework : homeworkChildren){
        NewsModel c = homework.getValue(NewsModel.class);
        if(max == 0) {
        max = c.getId() 
        } else {
        if(max <= c.getId()) 
        max = c.getId()  
       }
      }
      

      【讨论】:

        【解决方案3】:

        如果ids 是每个新闻的模式形式,例如 (1,2,3,4,5......)。

        这样做:

        ........
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
        
        //get the total number of children from the main dataSnapshot:
        int totalItems = (int) dataSnapshot.getChildrenCount();
        
        //now loop like you did
        for (DataSnapshot homework : homeworkChildren) {
        NewsModel c = homework.getValue(NewsModel.class);
        
        if(c.getId() == totalItems){
        //this is the max
        Log.e("MAX_VALU", String.valueOf(c.getId()));
        }
        
        }
        

        【讨论】:

          猜你喜欢
          • 2020-04-28
          • 2020-05-04
          • 1970-01-01
          • 2020-12-28
          • 1970-01-01
          • 2022-01-16
          • 2021-04-30
          • 1970-01-01
          • 2018-08-13
          相关资源
          最近更新 更多