[英]How to get chronologically latest post from Firebase?
我正在开发使用像新闻提要这样的Facebook的应用程序,并且我正在使用Firebase作为数据库。 一切工作正常,我只需要在时间上获取帖子。
FIRDatabaseQuery * query = [[[_firebaseReference child:@"Demo"]child:@"posts"]queryLimitedToFirst:100];
[query observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
if (snapshot.exists) {
postsDictionary = snapshot.value;
[self createSocialAppDataSource];
}
}];
postsDictionary中的数据与Database中的数据相同,但是我希望该数据(post)相对于时间进行排序,那么如何使用查询?
我在数据库中的帖子结构如下
要过滤子属性上的节点,请调用queryOrderedByChild
。
然后,当您对Firebase数据库执行查询时,可能会有多个结果。 因此,快照包含这些结果的列表。 即使只有一个结果,快照也将包含一个结果的列表。
因此,您需要遍历子级:
FIRDatabaseQuery * query = [[[[_firebaseReference child:@"Demo"] child:@"posts"] queryOrderedByChild: "dateTime"] queryLimitedToFirst:100];
[query observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
for ( FDataSnapshot *child in snapshot.children) {
NSLog(@"child.key = %@",child.key);
}
}];
松散地基于我在这里的答案: IOS Firebase:循环快照中的所有键。值变得混乱
通常,人们将他们要输入的数组追加到collectionView
或tableView
(例如),但是在您的情况下,您可以[myMutableArray insertObject:myObject atIndex:0];
现在,当您枚举snapshot
每个帖子都将添加到array
的前面
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.