Swift Firebase排序最后10,然后显示10个新值

时间:2016-09-09 23:41:35

标签: swift uitableview firebase firebase-realtime-database

我目前无法通过我的tableview显示值,因为我正在创建这个类似Instagram / Facebook的Feed,其中tableView在底部更新(只需通过firebase从数据库中获取新值)。但是,我真的很难用非dulpicate数据填充tableView。我正在按子(timestamp)对firebase ref进行排序,默认情况下我会显示" queryLimitedToLast(10)"。但是,这就出现了问题。我无法真正找到一种方式来展示" new"数据,尚未在上面的表格视图中列出。

我有一个" curLength:Int = 10"在我的ViewController中(显然是变量)。

每次用户更新tableView时,curLength为+ = 10,后跟一个只更新tableView的函数。不幸的是,我无法确定如何在查询中显示不存在的数据,因为我通过" queryLimitedToLast(x)"来运行它,在这种情况下只是重新填充tableView两次使用相同的数据,然后是10条新记录。

如果我想显示最新数据,那么我将如何处理这个问题?" 10个新帖子"每次更新?

1 个答案:

答案 0 :(得分:0)

您需要将时间戳用作分页游标。如果您请求按时间戳排序的10个帖子,请查询从您的tableView中具有最新时间戳的帖子值开始的下10个帖子。这样,您只会获取比最新帖子更新的帖子。

  SELECT sum(amount) AS totalAmountEarned, array_agg(d) AS transactions
    FROM default d WHERE _type = "UWTrans" AND userId = "BJsMyG57c18f13";
    [
      {
        "totalAmountEarned": 16,
        "transactions": [
          {
            "_id": "8c658e34-34cc-4e61-8b26-5abc1cebd95e",
            "_metadata": {
              "created_at": 1472550145662,
              "created_by": "api-tenant-1"
            },
            "_type": "UWTrans",
            "amount": 4,
            "reference": {
              "refTranId": "0c0133f4-ade7-4190-8a43-a59de43846b4",
              "refTranModule": "NSP",
              "refTranType": "BUY"
            },
            "source": "WALLET",
            "tranType": "REFERRAL",
            "userId": "BJsMyG57c18f13"
          },
          {
            "_id": "8c658e34-34cc-4e61-8b26-5abc1cebd95e",
            "_metadata": {
              "created_at": 1472550145662,
              "created_by": "api-tenant-1"
            },
            "_type": "UWTrans",
            "amount": 12,
            "reference": {
              "refTranId": "0c0133f4-ade7-4190-8a43-a59de43846b4",
              "refTranModule": "NSP",
              "refTranType": "BUY"
            },
            "source": "WALLET",
            "tranType": "REFERRAL",
            "userId": "BJsMyG57c18f13"
          }
        ]
      }
    ]