我正在使用 Firebase 填充 UITableView 。
我想知道是否可以让 Firebase 下载前 5 个结果,并且在用户滚动到最后一个结果后,下载接下来的 5 个结果。
目前,Firebase 会一次下载我的所有子节点,但如果它一点一点下载,则 View 加载速度会更快。
有什么建议吗?
--编辑
请务必注意,单元格中有图像。图片是 base64 编码的 NSString 。这是我用来检索它们并将它们转换为 UIImage s 的代码
NSString* profPicString = [child.value objectForKey: @"profilePicture"];
NSData *dataFromBase64 = [NSData base64DataFromString:profPicString];
UIImage *profPicImage = [[UIImage alloc]initWithData:dataFromBase64];
item.profilePicture = profPicImage;
Best Answer-推荐答案 strong>
初步想法
我不知道是否有理想的解决方案,但我肯定会研究 complex queries在 Firebase 的文档中。您可以使用 queryStartingAtValue 和 queryEndingAtValue 方法查询某些范围,但您必须确保您的 Firebase 设置正确才能使用这些。
在 Range Queries 部分的底部,它提到:
Range queries are also useful when you need to paginate your data.
所以这可能是您理想的解决方案。
现有解决方案
有一个 answer我发现它使用了我上面提到的东西,所以希望它对你有用。我要补充一点,在我的 firebase 上使用这些范围查询方法时运气不佳。
最后的想法
另一个解决方案可能不是您想听到的答案,但 URL(希望)比 base64 编码的图像短很多,并且在处理大量数据时可能会在下载时间上产生很大差异。通过此实现,您只在需要时从服务器请求图像,而不是一次全部请求。
关于ios - 一次在 Firebase 中填充一组单元格的 UITableView,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/34403886/
|