簡體   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