I have a Firebase data created as follows
tasks
-K1NRz9l5PU_0R8ltgXz
Description: \"test1\"
Status: \"PENDING\"
-K1NRz9l5PU_0CFDtgXz
Description: \
This code will find the node content test2
, then update the Status. Hope this help. I am using Google Firebase.
FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
final DatabaseReference reference = firebaseDatabase.getReference();
Query query = reference.child("tasks").orderByChild("Description").equalTo("test2");
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
DataSnapshot nodeDataSnapshot = dataSnapshot.getChildren().iterator().next();
String key = nodeDataSnapshot.getKey(); // this key is `K1NRz9l5PU_0CFDtgXz`
String path = "/" + dataSnapshot.getKey() + "/" + key;
HashMap result = new HashMap<>();
result.put("Status", "COMPLETED");
reference.child(path).updateChildren(result);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Logger.error(TAG, ">>> Error:" + "find onCancelled:" + databaseError);
}
});