正如您所看到的,每个帖子都有不同的Id(发布的用户ID),我正在尝试获取此子fx3RqooRMOVRaQHGas4OWQnFK593的引用,例如数据库引用将是这样的:
DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("Posts").child("fx3RqooRMOVRaQHGas4OWQnFK593");
但我想要的是动态获取每个帖子 ID 的引用。
最佳答案
你有两个选择。
- 如果您想下载一篇帖子,那么您必须使用您的自定义帖子 ID。你不能使用pushId()。这样您就知道您要下载并显示哪篇文章。
如何创建自定义ID
FirebaseDatabase.getInstance().getReference().child("Posts")
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
HashMap<String, Object> post = (HashMap<String, Object>) dataSnapshot.getValue();
total= post.size();
}
}
然后创建自定义 ID
FirebaseDatabase.getInstance().getReference().child("Posts").child("post"+total).setValue(YourValue);
选项 2。
只需从帖子节点下载所有帖子,因为您必须..
FirebaseDatabase.getInstance().getReference().child("Posts")
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
//here is your every post
String key = snapshot.getKey();
Object value = snapshot.getValue();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
奖金 如果你想显示特定用户的帖子。 (我假设) 您可以将用户对象内的推送键存储在字符串 arrylist 中。然后一一称呼他们...
快乐编码:):)
关于java - Firebase 获取 child 的 child 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46429529/