Reputation: 139
My Firebase structure:
"Requests" : {
"-KiyT2fiL8dE3jh7ccWT" : {
"4pGOtqaTskarMnvz058UBpYbW1y2" : {
"address" : "Street 12",
"phone" : "05****699",
"status" : "status",
"subject" : "subjectText",
"teacherName" : "nameText",
"time_date" : "30 Apr 2017 1:46:43 p.m.",
"uid_user" : "4pGOtqaTskarMnvz058UBpYbW1y2"
}
I'm trying to update a value of child " status"
, How to get to "status"
in rootRef
?
This my code
Acceptable.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Unacceptable.setEnabled(false);
Toast.makeText(context, " this Request has been Acceptable " , Toast.LENGTH_LONG).show();
rootRef = FirebaseDatabase.getInstance().getReference("Requests");
rootRef.child("Requests").child("uid").child("uid_user").orderByChild("status").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
final String status = dataSnapshot.getValue(String.class);
System.out.println(status);
rootRef.child("status").setValue("Your Request has been Acceptable");
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Toast.makeText(context, " this Request has been Acceptable " , Toast.LENGTH_LONG).show();
Acceptable.setEnabled(false);
}
});
Upvotes: 0
Views: 7797
Reputation: 599956
Why do you have a push ID around every user? That makes it necessary to query, and I doubt it is needed. A much simpler solution is to store users under their UID:
Users
4pG0...y2
address: "..."
phone: "..."
status: "status"
With this structure you can modify the status of a user with:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
rootRef.child("Requests").child(uid).child("status").setValue("new status");
Upvotes: 5
Reputation: 629
Not exactly sure how you db is structured but this might help
public void onClick(View v) {
Unacceptable.setEnabled(false);
Toast.makeText(context, " this Request has been Acceptable " , Toast.LENGTH_LONG).show();
FirebaseDatabase.getInstance().getReference("Requests").child("status").setValue("Your Request has been Acceptable");
Toast.makeText(context, " this Request has been Acceptable " , Toast.LENGTH_LONG).show();
Acceptable.setEnabled(false);
}
Upvotes: 0