大佬教程收集整理的这篇文章主要介绍了如何在Android中使用带动态参考的FirebaseRecyclerAdapter?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
"users": { "user1": { "name": "name","friends": { "user2": "true" } } "user2": { "name": "name","friends": { "user1": "true" } } }
我为用户名使用唯一ID.在这个简单的例子中,用户1和用户2是朋友.我想要做的是使用FirebaseRecyclerAdapter获取所有名称(以及稍后可能更多)的列表.通常,我会通过获取“朋友”下的用户ID然后使用这些ID导航到他们的名字来获得列表.在Java中,它看起来像这样:
Firebase ref = new Firebase("<reference>"); ref.child("users/user1/friends").addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot snapshot) { String userId = snapshot.getKey(); ref.child("users/" + userId + "/name").addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot snapshot) { System.out.println(snapshot.getValue()); } @Override public void onCancelled(FirebaseError firebaseError) { // Do something here } }); } });
但是在使用FirebaseRecyclerAdapter时,您只能定义一个URl.适配器将根据该单个位置中的项目创建列表.
有没有办法调整适配器,以便从多个位置读取数据,就像上面的例子一样?
或者有没有办法制作一个动态ref变量,它只指向也存储在当前用户“朋友”列表中的用户ID?我在考虑使用equals()方法,但我无法弄清楚究竟是怎么回事.
另一种方法是将用户名也存储在“朋友”列表中.但这不会改善数据结构.我每次都必须在两个地方更改名称(也许是后来的照片),这会引入更多的冗余.
有没有人有解决这个问题的方法?我无法在任何地方找到答案,但它似乎是一种常见的模式.除了让它工作之外,我该如何有效地做到这一点?
FirebaseRecyclerViewAdapter<Boolean,ItemViewHolder> adapter = new FirebaseRecyclerViewAdapter<Boolean,ItemViewHolder>( Boolean.class,android.R.layout.two_line_list_item,ItemViewHolder.class,friendsRef){ protected void populateViewHolder(final ItemViewHolder viewHolder,Boolean model,int position) { String key = this.getRef(position).getKey(); ref.child("users").child(key).addListenerForSingleValueEvent(new ValueEventListener() { public void onDataChange(DataSnapshot dataSnapshot) { String name = dataSnapshot.child("name").getValue(String.class); ((TextView)viewHolder.itemView.findViewById(android.R.id.text1)).setText(Name); } public void onCancelled(FirebaseError firebaseError) { } }); } };
我在sample repo上添加了一个activity Activity36235919
to demonstrate this.
在工作之后我意识到我之前在Coupling FirebaseRecyclerViewAdapter to a Boolean/String Map.Entry已经回答了这个问题,所以我会将你的问题标记为重复.
以上是大佬教程为你收集整理的如何在Android中使用带动态参考的FirebaseRecyclerAdapter?全部内容,希望文章能够帮你解决如何在Android中使用带动态参考的FirebaseRecyclerAdapter?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。