Ankit
Ankit

Reputation: 67

Update data from EditText Listview to firebase database on button click

I have database like this

enter image description here

It is possible to first set text of name in Edittext which is in Listview and then change the name to corresponding position items and on button click each inserted value in Editfield is updated to the database to related field.

Upvotes: 0

Views: 810

Answers (1)

Aditya Bugalia
Aditya Bugalia

Reputation: 26

1- Download:

FirebaseDatabase database=FirebaseDatabase.getInstance();

DatabaseReference reference=database.getReference();

reference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        try {

//parse data snapshot in another thread.

        }catch (Exception e){






        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {






    }
});

//=========================== 2- Parse: HashMap d = (HashMap) dataSnapshot.getValue(); HashMap users=((HashMap) d.get("users"));

3- Update ListView/EditText or use users(Hashmap)

4- Update:

String nameString= nameEditText.getText().toString();

FirebaseDatabase database = FirebaseDatabase.getInstance();

// getting database reference for the user that needs to be updated.

DatabaseReference  databaseReference = database.getReference().child("users").child(userId);

Map<String, Object> taskMap = new HashMap<String, Object>();
        taskMap.put("name", nameString);

        databaseReference.updateChildren(taskMap).addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                Log.d("", "task is: " + task);
                if(task.isSuccessful()){
                    Toast.makeText(getActivity(),"Commit is successfull", Toast.LENGTH_LONG).show();
                }else{

                    Toast.makeText(getActivity(),"Commit is failed", Toast.LENGTH_LONG).show();

                }

            }
        });
        databaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                Object value = dataSnapshot.getValue();
                Log.d("", "Value is: " + value);
            }

            @Override
            public void onCancelled(DatabaseError error) {
                // Failed to read value
                Log.w(TAG, "Failed to save value.", error.toException());
            }
        });

Upvotes: 1

Related Questions