firebaseArray降序?
firebaseArray descending order?
使用 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 按升序检索键。
Children with a numeric value come next, sorted in ascending order.
有什么方法可以直接从firebaseArray中按降序获取结果吗?例如,他们有类似 .reverse()
或 .orderBy(desc, ...)
的东西吗?
这是按日期订购的方法。只需使用 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)
})
这并没有直接回答原来的问题,但是对于任何使用 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
使用 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 按升序检索键。
Children with a numeric value come next, sorted in ascending order.
有什么方法可以直接从firebaseArray中按降序获取结果吗?例如,他们有类似 .reverse()
或 .orderBy(desc, ...)
的东西吗?
这是按日期订购的方法。只需使用 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)
})
这并没有直接回答原来的问题,但是对于任何使用 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