【问题标题】:How to get values from different child in firebase realtime database?如何从firebase实时数据库中的不同孩子获取值?
【发布时间】:2021-01-25 03:41:56
【问题描述】:

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

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

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

使用该查询从所有用户那里获取所有帖子,但没有用。有什么更好的办法解决这个问题?

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

这个工作,但不能使用这个,因为我想释放所有用户读取数据。

【问题讨论】:

    标签: android firebase firebase-realtime-database


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

    【讨论】:

      猜你喜欢
      • 2021-11-04
      • 1970-01-01
      • 2021-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-07
      • 1970-01-01
      相关资源
      最近更新 更多