我正在尝试检索ServiceFee中的值。我不能直接
FirebaseDatabase.getInstance().getReference()
.child("RequestService").child("Plumbers").child(uid)
因为RequestService以下的子项(例如Plumbers)应取决于在Workers中找到的当前用户的父级子项
如屏幕快照中所示的示例,用户KO2rC ..的父级孩子是Plumbers,因此在获得ServiceFee值之前,我应该先获取它
我尝试了in my previous post技术,但似乎无法恢复该值,仅恢复了密钥,并且不需要密钥
最佳答案
尝试这个:
FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
String uid=user.getUid();
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("Workers");
ref.addSingleValueEventListener(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot datas: dataSnapshot.getChildren()){
String plumbers=datas.getKey();
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("RequestService").child(plumbers).child(uid);
ref.addSingleValueEventListener(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String fees=dataSnapshot.child("ServiceFee").getValue().toString();
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
您可以执行上述操作,首先在
child("Workers")
处添加快照,然后迭代并使用Plumbers
检索值为getKey()
的值。之后,添加一个嵌套的侦听器,并将检索到的
Plumbers
放在子child("RequestService").child(plumbers)
内,并检索值ServiceFee