【发布时间】:2017-12-28 15:44:15
【问题描述】:
我需要更新从 服务器端发布的 firebase 数据中的几个节点。需要从设备端将节点“is_done”更新为 0/1。我尝试了不同的解决方案但一切都变得徒劳,即它在“计划”节点之外添加了一个不同的节点。
我试过的代码 sn-p
private void updatemultiplefirebasedata() {
FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
final DatabaseReference reference = firebaseDatabase.getReference();
Query query = reference.child("schedule").child("22-12-2017").child("route").child("1").child("kid").child("21");
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
for(DataSnapshot d : dataSnapshot.getChildren()) {
Log.d("Keys",String.valueOf(d.getKey())); //returning all the keys
HashMap<String, Object> result = new HashMap<>();
result.put("is_done", "0");
reference.child(String.valueOf(d.getKey())).updateChildren(result); //update according to keys
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
【问题讨论】:
-
所有键都在日志中正确出现?
-
是的,它正在返回 1,2
-
检查我的答案@avik
标签: android firebase firebase-realtime-database