Android 如何从firebase数据库检索数据并在自定义listview中显示?
我已经在firebase数据库的USERID下的Post节点中相应地以递增顺序存储了用户Post详细信息,如Post1、Post2等。现在,我想以Post2、Post1和show的降序逐个检索Post节点中的所有数据。对于检索单个post节点数据,它可以正常工作,但对于检索多个/所有post节点则不起作用。 以下是我的firebase数据库映像: 通过这种方式显示我尝试过的所有帖子:Android 如何从firebase数据库检索数据并在自定义listview中显示?,android,firebase,firebase-realtime-database,firebase-storage,Android,Firebase,Firebase Realtime Database,Firebase Storage,我已经在firebase数据库的USERID下的Post节点中相应地以递增顺序存储了用户Post详细信息,如Post1、Post2等。现在,我想以Post2、Post1和show的降序逐个检索Post节点中的所有数据。对于检索单个post节点数据,它可以正常工作,但对于检索多个/所有post节点则不起作用。 以下是我的firebase数据库映像: 通过这种方式显示我尝试过的所有帖子: dataref1.addValueEventListener(new com.google.firebase.
dataref1.addValueEventListener(new
com.google.firebase.database.ValueEventListener() {
@Override
public void onDataChange(com.google.firebase.database.DataSnapshot
dataSnapshot) {
list.clear();
for(com.google.firebase.database.DataSnapshot dataSnap :
dataSnapshot.getChildren())
{
for(com.google.firebase.database.DataSnapshot datas :
dataSnap.getChildren()) {
DataModel datamodel =
dataSnap.getValue(DataModel.class);
list.add(datamodel);
}
}
CustomAdapter adapter = new CustomAdapter(Home.this,list);
listView.setAdapter(adapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
它只是在自定义listview中显示用户名
我查阅了很多教程,但没有找到解决方案。请帮帮我
谢谢:)FirebaseUI库让它变得非常简单。允许您使用FirebaseRecyclerAdapter来填充RecyclerView 这是官方指南
要显示这些帖子,您需要稍微更改Firebase数据库。目前,您的所有帖子都嵌套在
uid
下。您需要添加另一个节点,名为posts
,它是uid
的直接子节点,您需要在其中分别添加所有这些post。您的数据库应如下所示:
Firebase-root
|
---- city: "City Name"
|
---- email: "name@email.com"
|
---- //and so on
|
---- posts
|
---- post1
|
---- post2
|
---- post3
|
//and so on
若要删除这些帖子,请使用以下代码:
//get the uid
FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
String uid = firebaseUser.getUid();
}
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference postsRef = rootRef.child(uid).child("posts");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String description = ds.child("description").getValue(String.class);
String dateTime = ds.child("dateTime").getValue(String.class);
String posturi = ds.child("posturi").getValue(String.class);
String severity = ds.child("severity").getValue(String.class);
Log.d("TAG", description + " / " + dateTime + " / " + posturi + " / " + severity);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
yourRef.addListenerForSingleValueEvent(eventListener);
dataref1
指向哪个位置?@VirendraSingh是我们的数据库引用。dataref1=FirebaseDatabase.getInstance().getReference(“用户”);