仅下载前n个子节点(Firebase,Swift)

时间:2018-03-29 00:13:49

标签: ios swift firebase

我正在尝试创建一个类似于Twitter的应用程序但是我的理解是,如果我将所有“推文”作为子项添加到“post”节点,当我尝试检索这些孩子时,我将不得不下载所有的帖子。随着应用程序的扩展,这将导致下载数百万个帖子。有没有办法只检索第一个说25个帖子?

1 个答案:

答案 0 :(得分:0)

我最近回到了这个问题并找到了解决方案。可以创建firebase查询,而不是实现简单的读取请求。

首先,应将一个孩子添加到“post”节点以存储帖子的反转时间戳。

let timestamp = Date().timeIntervalSince1970 //timestamp
let reversedTimestamp = -1.0 * timestamp //reverse time stamp

现在,可以通过添加.queryOrdered(byChild:“reverseTimestamp”)。queryLimited(toFirst:25)来创建查询。这将返回数据库中子项下最近的25个帖子。

ref.child("walls").child(userCredentials.getResidenceCode()).queryOrdered(byChild: "reverseTimestamp").queryLimited(toFirst: 25).observe(of: .childAdded, with: { (snapshot) in