ios - 一次在 Firebase 中填充 UITableView 一组单元格

标签 ios objective-c uitableview firebase data-retrieval

我正在使用 Firebase 来填充 UITableView

我想知道是否可以让 Firebase 下载前 5 个结果,并且在用户滚动到最后一个结果后,下载接下来的 5 个结果。

目前,Firebase 一次下载我所有的子节点,但如果它一点一点地下载, View 加载速度会更快。

有什么建议吗?

--编辑

重要的是要注意单元格中有图像。图像是 base64 编码的 NSString。这是我用来检索它们并将它们转换为 UIImage

的代码
NSString* profPicString = [child.value objectForKey: @"profilePicture"];
NSData *dataFromBase64 = [NSData base64DataFromString:profPicString];
UIImage *profPicImage = [[UIImage alloc]initWithData:dataFromBase64];
item.profilePicture = profPicImage;

最佳答案

初步想法

我不知道是否有理想的解决方案,但我肯定会调查 complex queries在 Firebase 的文档中。您可以使用方法 queryStartingAtValuequeryEndingAtValue 查询特定范围,但您必须确保您的 firebase 设置正确才能使用这些范围。

在范围查询部分的底部,它提到:

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/

相关文章:

iphone - NSInvocation需要NSMethodSignature

ios - 格式指定类型 'int' 但参数的类型为 'NSString *'

ios - 继承自 UITextField 的类导致无法获取内容?

objective-c - 为 NavBar 的标题添加阴影

ios - 将值从 TableView Controller 传递到 View Controller

IOS - 静态 UITableViewController 中的样式部分标题 - IOS7

ios - 从 UITableViewCell 获取 TableViewController

ios - 逐行绘制到位图上下文的有效方法

ios - ionic :Unable to install phonegap-plugin-push in ios app

iOS 11 错误,didselectrowatindexpath 调用同时用两根手指点击单元格