Update specific Values using Firebase for Android

后端 未结 5 432
既然无缘
既然无缘 2020-12-05 01:17

I have a Firebase data created as follows

tasks
-K1NRz9l5PU_0R8ltgXz
   Description: \"test1\"
   Status: \"PENDING\"
 -K1NRz9l5PU_0CFDtgXz
   Description: \         


        
5条回答
  •  有刺的猬
    2020-12-05 01:59

    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);
    
            }
        });
    

提交回复
热议问题