我有一个Firebase数据库查询返回100个子节点。然后我将节点放入FirebaseRecyclerAdapter,以便数据显示在回收器视图上。这一切都很好。现在我需要访问最新的元素及其Firebase密钥,但是无法弄明白(应该很容易,我一定错过了一些明显的东西)。如何在返回的查询或适配器中获取最新元素及其Firebase密钥?
要获得100个子节点,我使用:
Query publishedPostsQuery = mFirebaseDatabase.child("posts").limitToFirst(100);
然后我填充了Firebase回收站适配器:
FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Post, PostViewHolder>(Post.class, R.layout.post_items, PostViewHolder.class, postsQuery) { ... };
然后在回收站视图中使用此适配器。
如何通过Query或FirebaseRecyclerAdapter访问第一个Post对象及其Firebase密钥?
我的firebase数据库结构如下所示:
-posts
-KLRDgtNht0iSB6RUGGz
- author: "author 1"
- title: "some post"
- detail: "blah blah"
-HGze53Sd4RRpFikdIKD
- author: "author 2"
- title: "great post"
- detail: "blah blah blah blah"
我正在使用的Firebase版本是:
compile 'com.firebaseui:firebase-ui-database:0.4.0'
compile 'com.google.firebase:firebase-database:9.0.2'
答案 0 :(得分:1)
我明白了。为了找到一个特定的节点,在我的例子中是最新的帖子(根据我问题上显示的给定数据结构显示为Post对象),我必须使用alter table notebooks modify comments text CHARACTER SET utf8 COLLATE utf8_general_ci;
来获取Firebase DataSnapshot,然后从那里我可以循环遍历子节点以找到我想要的内容。
addListenerForSingleValueEvent
答案 1 :(得分:0)
使用适配器,您可以这样做:
if (mAdapter.getItemCount() > 0) {
final Post = mAdapter.getItem(0);
}
您可以在此处找到FirebaseRecyclerAdapter
的来源:https://github.com/firebase/FirebaseUI-Android/blob/master/database/src/main/java/com/firebase/ui/database/FirebaseRecyclerAdapter.java