Я хочу удалить конкретное значение из базы данных Firebase после базы данных, которую я сохранил
Как удалить определенное значение из базы данных Firebase? Я хочу удалить table13 из Occupied и перевести ее в Available
- какое значение вы хотите удалить? 31.03.2018
- table13 и перенести в доступный @akhilesh0707 31.03.2018
- проверьте мой обновленный ответ 31.03.2018
- Возможный дубликат Как удалить дочерние узлы в firebase android? 31.03.2018
- Почему вы используете два отдельных узла для таблиц, доступных и занятых? 02.04.2018
Ответы:
Чтобы удалить определенные дочерние узлы в Firebase
, вам нужно вызвать заданное значение null
для этого конкретного узла. Или вы можете вызвать databaseReference.removeValue();
Попробуйте код ниже, он решит вашу проблему
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("table").child("occupied");
databaseReference.setValue(null);
Обновление: вы используете dataSnapshot
попробуйте это
dataSnapshot.getRef().setValue(null);
Вы должны сделать это в несколько шагов:
- Загрузите в память устройства данные, которые вы хотите удалить.
- Удалите из firebase данные, которые вы уже загрузили.
- Запишите данные из памяти в новый узел базы данных firebase.
Но это не лучшее решение... здесь вы должны обработать несколько маргинальных случаев, таких как прерывание приложения на шаге 2. Конечно, вы можете справиться с этим, но здесь много кода, который необходимо написать и поддерживать. Я предлагаю вам использовать облачные функции firebase. Чтобы применить эти 3 шага к облачным функциям и просто обработать результаты в слушателях базы данных Firebase в реальном времени, достаточно 1 вызова облачных функций для получения потрясающих результатов :)
Также в облачных функциях firebase вы можете поместить прослушиватель на свой «доступный» узел, который будет запускаться, когда некоторые данные узла будут удалены. В этом слушателе вы можете получить те данные, которые должны быть удалены, и переместить их на «занятый» узел. С моей точки зрения, это решение немного проще.
available
, а затем удалить 31.03.2018dataSnapshot.getRef().child("Table13").setValue(null)
31.03.2018occupied
, затем вызовитеFirebaseDatabase.getInstance().getReference().child("table").child("occupied");
, он удалит занятый узел, а также все дочерние узлы 31.03.2018FirebaseDatabase.getInstance().getReference().child("table").child("occupied").child("table13").removeValue();
31.03.2018