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