Android Firebase显示数据
我想显示(用户:…),但我不知道用户的路径。如何在listview中选择用户显示。请查看我的代码并帮助我Android Firebase显示数据,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我想显示(用户:…),但我不知道用户的路径。如何在listview中选择用户显示。请查看我的代码并帮助我 public class ListUserRoom extends AppCompatActivity { private ListView listView; List<Member> members = new ArrayList<>(); private DatabaseReference mDatabase = FirebaseD
public class ListUserRoom extends AppCompatActivity {
private ListView listView;
List<Member> members = new ArrayList<>();
private DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
private String keyOfRoom = "";
private String keyOfMember = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_user_room);
createListUser();
}
private void createListUser() {
listView = (ListView)findViewById(R.id.listView);
listView.setAdapter(new ListUserRoom.ImageAdapter(this));
Intent getData = getIntent();
if(getData != null){
keyOfRoom = getData.getExtras().getString("key" , "");
}
getData = getIntent();
if(getData != null){
keyOfMember = getData.getExtras().getString("keymember" , "");
}
mDatabase = FirebaseDatabase.getInstance().getReference()
.child("AllRoom").child(keyOfRoom)
.child("Member").child(keyOfMember)
.child("User");
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Set<String> set = new HashSet<String>();
Iterator i = dataSnapshot.getChildren().iterator();
dataSnapshot.getValue();
while (i.hasNext()){
DataSnapshot data = (DataSnapshot)i.next();
Member member = data.getValue(Member.class);
member.setKey(data.getKey());
members.add(member);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
公共类ListUserRoom扩展了AppCompative活动{
私有列表视图列表视图;
列表成员=新的ArrayList();
私有数据库引用mDatabase=FirebaseDatabase.getInstance().getReference();
私有字符串keyOfRoom=“”;
私有字符串keyOfMember=“”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u list\u user\u room);
createListUser();
}
私有void createListUser(){
listView=(listView)findViewById(R.id.listView);
setAdapter(新的ListUserRoom.ImageAdapter(this));
Intent getData=getIntent();
if(getData!=null){
keyOfRoom=getData.getExtras().getString(“key”,即“”);
}
getData=getIntent();
if(getData!=null){
keyOfMember=getData.getExtras().getString(“keymember”,即“”);
}
mDatabase=FirebaseDatabase.getInstance().getReference()
.儿童(“所有房间”).儿童(房间钥匙)
.子女(“成员”).子女(成员)
.儿童(“用户”);
mDatabase.addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
Set=newhashset();
迭代器i=dataSnapshot.getChildren().Iterator();
dataSnapshot.getValue();
while(i.hasNext()){
DataSnapshot data=(DataSnapshot)i.next();
成员=data.getValue(Member.class);
setKey(data.getKey());
成员。添加(成员);
}
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
}
如何选择表用户:(全部)和成员。为show listuser(私有字符串键,用户)设置it模型,获取键用户在AllRoom表之后的数据库引用中缺少子键
mDatabase = FirebaseDatabase.getInstance().getReference()
.child("AllRoom")
.child(missingKey)//You need to add a key here to be able to access Member
.child("Member");
在你解决了这个问题之后,这里有一个我已经为你的问题修改过的代码
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
Member member = data.getValue(Member.class);
member.setKey(data.getKey());
Members.add(member);
}
}
希望这有帮助你能发布你的Member.java类吗?好的!兄弟编辑完成感谢帮助!!@wnieves19不起作用。你能看到问题并再次帮助我吗?谢谢你的帮助