firebaseArray降序排列?

时间:2015-07-08 01:45:43

标签: firebase sorting

使用firebaseArray,是否可以按指定的子键排序: (https://www.firebase.com/docs/web/guide/retrieving-data.html#section-queries)?

var fireRef = new Firebase(https://dinosaur-facts.firebaseio.com/dinosaurs);
var query = fireRef.orderByChild("echo").limitToFirst(25);
var todos = $firebaseArray(query);

但是,默认情况下,Firebase会按升序检索密钥。

  

接下来是具有数值的儿童,按升序排序。

有没有办法从firebaseArray以降序直接获得结果?例如,他们是否有.reverse().orderBy(desc, ...)

之类的内容

2 个答案:

答案 0 :(得分:13)

这并不直接回答原始问题,但对于使用FirebaseUI Java / Android且RecyclerView的任何人,可以反向订购RecyclerView而不是在Firebase上使用查询:

示例:

LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setReverseLayout(true);
layoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(layoutManager)

(确保在将布局管理器添加到RecyclerView之前设置两者)

Github问题:https://github.com/firebase/FirebaseUI-Android/issues/90#issuecomment-230643303

答案 1 :(得分:1)

以下是按日期订购的方法。只需使用queryOrderedByChild(dateKey) 并且它将以asc顺序,使desc你可以做array.reverse()

POST_REF.queryOrderedByChild(PostKeys.kPostDate).observeEventType(.Value, withBlock: {
  snapshot in

  var localPosts = [Post]()
    for item in snapshot.children {
      let postItem = Post(snapshot: item as! FDataSnapshot)
      localPosts.append(postItem)
    }
  //Display at desc order
   let reverseResults = localPosts.reverse() as [Post]
       completion(postsArray: reverseResults)
    }, withCancelBlock: { error in
   completion(postsArray: nil)
})