这是我的数据库体系结构,其中乔布斯是主要子级,在该体系结构下将有用户子级,并且用户可以发布多个时间。现在我想一次让所有用户完成所有帖子。可以这样做吗?
https://i.stack.imgur.com/DT3MO.jpg
setQuery(FirebaseDatabase.getInstance().getReference().child("Jobs")
使用该查询从所有用户那里获取所有帖子,但是没有用。有更好的解决方案吗?
setQuery(FirebaseDatabase.getInstance().getReference().child("Jobs").child("Uid");
这一项有效,但不能使用,因为我想让所有用户自由读取数据。
答案 0 :(得分:1)
您可以执行以下操作:
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Jobs");
reference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()){
String key = ds.getKey();
for (DataSnapshot childSnapshot: ds.getChildren()) {
// get the child attribute under the random key
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});
由于已经引用了节点Jobs
,因此在第一次迭代中,您可以获得随机密钥(在图像中突出显示),而在第二次迭代中,您可以获得这些密钥内部的属性。