我正在从 firebase 数据库中检索所有用户并将它们显示在 recyclerView 中。它显示城镇、用户名和图像。我能够检索,但它只显示一个用户而不是所有用户。数据库有很多用户,但只显示一个。任何建议都会有帮助。
这是检索用户的位
public void showUsersList() {
mdatabaseRef = FirebaseDatabase.getInstance ().getReference ( "Users" );
mdatabaseRef.addValueEventListener ( new ValueEventListener () {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
mcontacts.clear ();
for (DataSnapshot postSnapshot : dataSnapshot.getChildren ()) {
Contacts contactsz = dataSnapshot1.getValue (Contacts.class);
mcontacts.add ( contactsz );
}
mAdapter = new UsersAdapter ( getApplicationContext () , mcontacts );
recyclerView.setAdapter ( mAdapter );
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText ( FindFriendsActivity.this , " " , Toast.LENGTH_SHORT ).show ();
}
}
}
这是适配器类
private Context mcontext;
private List<Contacts> mcontacts;
public UsersAdapter(Context context, List<Contacts> contacts){
mcontext = context;
mcontacts = contacts;
}
@NonNull
@Override
public UsersViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup , int i) {
View v = LayoutInflater.from ( mcontext ).inflate ( R.layout.users_display_layout, viewGroup, false );
return new UsersViewHolder ( v );
}
@Override
public void onBindViewHolder(@NonNull UsersViewHolder usersViewHolder , int i) {
Contacts contactsCurrent = mcontacts.get ( i );
usersViewHolder.nameOfUser.setText ( contactsCurrent.getName () );
usersViewHolder.nameOfTown.setText ( contactsCurrent.getTownname () );
Picasso.get ().load ( contactsCurrent.getImage () ).into ( usersViewHolder.usersImage );
}
@Override
public int getItemCount() {
return mcontacts.size ();
}
public class UsersViewHolder extends RecyclerView.ViewHolder{
public TextView nameOfUser;
public TextView nameOfTown;
public CircleImageView usersImage;
public UsersViewHolder(@NonNull View itemView) {
super ( itemView );
nameOfUser = itemView.findViewById ( R.id.user_profile_name );
nameOfTown = itemView.findViewById ( R.id.user_town_name );
usersImage = itemView.findViewById ( R.id.users_profile_image );
}
}
}
`````````````````````````````````````````````````````````````````
这是联系人类
public class Contacts {
public String Name,townname,image;
public Contacts(){
}
public Contacts(String name , String townname , String image) {
Name = name;
this.townname = townname;
this.image = image;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getTownname() {
return townname;
}
public void setTownname(String townname) {
this.townname = townname;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
}
[1]: /image/dFD6z.jpg
最佳答案
我不认为 Firebase 可以让你获取所有用户帐户信息,这是我在一个项目中工作时所做的,当他们以这种格式注册时,我使用 readtime DataBase 来保存用户信息(稍后可以使用 Uid 更新信息) ,然后为 recyclerView 获取此数据库字段。
注意:应该使用用户身份验证 UID 来获取数据。
对于这种情况,也可以为 recyclerView 尝试使用此方法,而不是 onDataChange。
mFirebaseDatabaseRef.child("Users").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String retrievename = String.valueOf((String) dataSnapshot.child("Name").getValue());
String retrievecity = String.valueOf((String) dataSnapshot.child("townname").getValue());
String retrieveProfileImage = String.valueOf((String) dataSnapshot.child("image").getValue());
if (!retrievename.equals("null")) {
usersnames.setText ( retrievename );
userstown.setText ( retrievecity );
Picasso.get().load ( retrieveProfileImage ).into ( circleImageView );
}
mAdapter.notifyDataSetChanged();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) { }
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) { }
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) { }
@Override
public void onCancelled(DatabaseError databaseError) { }
});
}
关于java - 从 FirebaseDatabase 检索所有用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55567799/
我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123
我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数
我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
当我的预订模型通过rake任务在状态机上转换时,我试图找出如何跳过对ActiveRecord对象的特定实例的验证。我想在reservation.close时跳过所有验证!叫做。希望调用reservation.close!(:validate=>false)之类的东西。仅供引用,我们正在使用https://github.com/pluginaweek/state_machine用于状态机。这是我的预订模型的示例。classReservation["requested","negotiating","approved"])}state_machine:initial=>'requested
我有这个html标记:我想得到这个:我如何使用Nokogiri做到这一点? 最佳答案 require'nokogiri'doc=Nokogiri::HTML('')您可以通过xpath删除所有属性:doc.xpath('//@*').remove或者,如果您需要做一些更复杂的事情,有时使用以下方法遍历所有元素会更容易:doc.traversedo|node|node.keys.eachdo|attribute|node.deleteattributeendend 关于ruby-Nokog
我想获取模块中定义的所有常量的值:moduleLettersA='apple'.freezeB='boy'.freezeendconstants给了我常量的名字:Letters.constants(false)#=>[:A,:B]如何获取它们的值的数组,即["apple","boy"]? 最佳答案 为了做到这一点,请使用mapLetters.constants(false).map&Letters.method(:const_get)这将返回["a","b"]第二种方式:Letters.constants(false).map{|c
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www
我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。
我在新的Debian6VirtualBoxVM上安装RVM时遇到问题。我已经安装了所有需要的包并使用下载了安装脚本(curl-shttps://rvm.beginrescueend.com/install/rvm)>rvm,但以单个用户身份运行时bashrvm我收到以下错误消息:ERROR:Unabletocheckoutbranch.安装在这里停止,并且(据我所知)没有安装RVM的任何文件。如果我以root身份运行脚本(对于多用户安装),我会收到另一条消息:Successfullycheckedoutbranch''安装程序继续并指示成功,但未添加.rvm目录,甚至在修改我的.bas
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我