繁体   English   中英

如何从 firebase 实时数据库中获取不同孩子的值?

[英]How to get values from different child in firebase realtime database?

这是我的数据库架构,其中 Jobs 是主要的孩子,在其下将有用户的孩子,并且用户可以多次发布。 现在我想一次完成所有用户的所有帖子。 有可能这样做吗?

https://i.stack.imgur.com/DT3MO.jpg

setQuery(FirebaseDatabase.getInstance().getReference().child("Jobs")

使用该查询获取所有用户的所有帖子,但没有用。 这个问题有更好的解决方案吗?

setQuery(FirebaseDatabase.getInstance().getReference().child("Jobs").child("Uid");

这个有效,但不能使用这个,因为我想为所有用户免费读取数据。

您可以执行以下操作:

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的引用,因此在第一次迭代中您可以获得随机键(在图像中突出显示),并且在第二次迭代中您可以获得这些键中的属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM