все! Я хочу удалить значение из База данных Firebase , используя RecyclerView .
Однако я не могу найти ключ ребенка, который я хочу удалить.
Во-первых, я добавляю данные в базу данных следующим образом:
String key = MainActivity.databaseReference.push().getKey();
MainActivity.databaseReference.child(key).setValue(myAppModel);
Что касается удаления, в моем адаптере RecyclerView я написал onClickListener в ImageView и удаляю элемент из списка успешно!
Кроме того, я пробовал много способов, как удалить этот элемент из базы данных, но данные все еще не тронуты.
Вот код:
holder.appDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mAppModelList.remove(position);
notifyItemRemoved(position);
notifyItemRangeChanged(position, mAppModelList.size());
final ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
dataSnapshot.getValue(AppModel.class);
MainActivity.databaseReference.child(mAuth.getUid()).child(dataSnapshot.getRef().getKey()).removeValue();
System.out.println(dataSnapshot.getRef().getKey()); // it gives me user id...but in my MainActivity it gives the real key
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
MainActivity.databaseReference.addListenerForSingleValueEvent(eventListener);
}
});
Как я уже упоминал в комментарии к коду, getRef (). GetKey () дает мне идентификатор пользователя Firebase, например mAuth.getUid ()
И в MainActivity я получаю настоящее имя (ключ) ребенка
Query query = databaseReference;
query.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
AppModel appModel = dataSnapshot.getValue(AppModel.class);
appModelResult.add(0, appModel);
AddAppDialog.setAppModelResult(appModelResult);
System.out.println(dataSnapshot.getRef().getKey());
reloadFragment(fragment);
}
Что я должен сделать, чтобы удалить данные из базы данных?
Спасибо всем заранее!