在Firebase中填充UITableView一次设置单元格数量
我正在使用Firebase来填充UITableView
。
我想知道是否有可能让Firebase下载前5个结果,并且一旦用户滚动到最后的结果,就下载下5个结果。
目前,Firebase一次下载我的所有子节点,但是如果它一点一点地执行,则视图将加载得更快。
有什么build议?
– 编辑
注意到单元格中有图像是很重要的。 图像是base64编码的NSString
s。 这里是我用来检索它们并将它们转换成UIImage
的代码
NSString* profPicString = [child.value objectForKey: @"profilePicture"]; NSData *dataFromBase64 = [NSData base64DataFromString:profPicString]; UIImage *profPicImage = [[UIImage alloc]initWithData:dataFromBase64]; item.profilePicture = profPicImage;
最初的想法
我不知道是否有一个理想的解决scheme,但我一定会考虑Firebase文档中的复杂查询 。 您可以使用方法queryStartingAtValue
和queryEndingAtValue
查询某些范围,但是您必须确保您的Firebase设置正确才能使用这些范围。
在范围查询部分的底部,它提到:
当您需要分页数据时,范围查询也很有用。
所以这可能是您理想的解决scheme。
现有的解决scheme
我发现有一个答案使用我上面提到的,所以希望它适合你。 我将补充一点,在我的firebase上使用这些范围查询方法,我没有太多的运气。
最后的想法
另一个解决scheme可能不是你想听到的答案,但是URL(希望)比base64编码图像短得多,并且在处理大量数据时可能在下载时间上产生很大的差异。 有了这个实现,你只需要从服务器的图像,当你需要他们,而不是一次。