首页 > 解决方案 > 为什么当我在 Flutter for Web 中更新实时数据库中的某个字段时我的数据被删除

问题描述

我正在尝试更新我在实时数据库中的数据,以更新 web 应用程序的颤动。但是每当我更新我的数据时,它都会删除同一张表中的所有其他字段。

ChangeNotificationStatus() async {
    Map NotificationData = {
      "NotificationChecked": "YES",
    };
    await put(
        Uri.parse(
            "https://officialnasproject-default-rtdb.firebaseio.com/App/Notification.json"),
        body: jsonEncode(NotificationData));
  }

数据库映像

标签: flutterhttpdartfirebase-realtime-databaseweb-applications

解决方案


每当您put向数据库中的路径发送数据时,您在请求中提供的数据都会替换该路径中的所有现有数据。

如果您只想更新一个属性,您可以选择两个选项:

  • 您可以put将该单个值传递给较低级别​​的路径:

    await put(
      Uri.parse(
        "https://officialnasproject-default-rtdb.firebaseio.com/App/Notification/NotificationChecked.json"),
      body: jsonEncode("YES"));
    }
    
  • 您可以使用patch,它仅替换您在NotificationData地图中拥有的键,而其他键保持不变。

有关这些操作的更多信息,我建议阅读有关实时数据库的 REST API 的Firebase 文档。


推荐阅读