【发布时间】:2019-03-08 09:25:18
【问题描述】:
我已访问此用户节点的子节点。但是每次我尝试更新一个孩子的分数和分析时,其他孩子都会受到影响,导致另一个孩子具有相同的价值。
这是我用来访问用户下的孩子以获得分数的代码
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query query = rootRef.child("Users").orderByChild("username");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
Map<String, Object> map = (Map<String, Object>) ds.getValue();
map.put("score", total);
ds.getRef().updateChildren(map);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d("TAG", databaseError.getMessage());
}
};
query.addListenerForSingleValueEvent(valueEventListener);
这是我用来访问用户下的子项以进行分析的代码
DatabaseReference dr = FirebaseDatabase.getInstance().getReference();
Query q = dr.child("Users").orderByChild("username");
ValueEventListener vel = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
Map<String, Object> map = (Map<String, Object>) ds.getValue();
map.put("analysis", sev);
ds.getRef().updateChildren(map);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d("TAG", databaseError.getMessage());
}
};
q.addListenerForSingleValueEvent(vel);
}
我必须在不影响其他孩子的情况下更新分析和评分
【问题讨论】:
-
你从哪里得到这个值
usersName(在线if(usersName == usersName){),它的目的是什么? -
那是错误的。我只是在尝试。那不应该在那里。
标签: java firebase android-studio firebase-realtime-database