繁体   English   中英

如何从Firebase按时间顺序获取最新帖子?

[英]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:循环快照中的所有键。值变得混乱

通常,人们将他们要输入的数组追加到collectionViewtableView (例如),但是在您的情况下,您可以[myMutableArray insertObject:myObject atIndex:0]; 现在,当您枚举snapshot每个帖子都将添加到array的前面

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM