# #flutter #http #dart #firebase-realtime-database #web-applications
Вопрос:
Я пытаюсь обновить свои данные в базе данных в реальном времени в flutter для веб-приложения. Но всякий раз, когда я обновляю свои данные, он удаляет все остальные поля в той же таблице.
ChangeNotificationStatus() async {
Map NotificationData = {
"NotificationChecked": "YES",
};
await put(
Uri.parse(
"https://officialnasproject-default-rtdb.firebaseio.com/App/Notification.json"),
body: jsonEncode(NotificationData));
}
Ответ №1:
Всякий раз, когда вы put
указываете путь в базе данных, данные, которые вы предоставляете в запросе, заменяют все существующие данные в этом пути.
Если вы хотите обновить только одно свойство, у вас есть два варианта:
- Вы можете
put
добавить это единственное значение в путь более низкого уровня:await put( Uri.parse( "https://officialnasproject-default-rtdb.firebaseio.com/App/Notification/NotificationChecked.json"), body: jsonEncode("YES")); }
- Вы можете использовать
patch
, который заменяет только ключи, которые у вас есть на вашейNotificationData
карте, и оставляет другие ключи неизмененными.
Для получения дополнительной информации об этих операциях я рекомендую прочитать документацию Firebase по API REST базы данных реального времени.