Я хочу обновить значение в базе данных Firebase с помощью специального адаптера, я вызываю форму метода onBindViewHolder, которая обновляет только значение в позиции 0. Я хочу обновить дочерний узел, только когда мое условие истинно.
Вот что я пробовал:
public void onBindViewHolder(@NonNull final TvViewHolder tvViewHolder,
final int i) {
formModel=feedbacks.get(i);
}
private void updateStatus(final String Reply)
{ databaseReference=FirebaseDatabase.getInstance().
getReference("USERS_FEEDBACK");
final Query findfeedback=databaseReference.orderByChild("email_or_num")
.equalTo(formModel.getEmail_or_num());
findfeedback.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot feedback: dataSnapshot.getChildren())
{
FormModel formModel1=feedback.getValue(FormModel.class);
if(formModel1.getFeedback().equals(formModel.getFeedback()) && formModel1.getEmail_or_num().equals(formModel.getEmail_or_num()))
{
String key=feedback.getKey();
databaseReference.child(key).child("status").setValue(Reply);
Intent refresh=new Intent(mcontext, StdAppFeedback.class);
mcontext.startActivity(refresh);
((Activity)mcontext).finish();
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(mcontext, databaseError.toString(), Toast.LENGTH_LONG).show();
}
});}
Изображение здесь: https://ibb.co/6DfZSHk