【问题标题】:How to save very long string into firebase firestore database?如何将很长的字符串保存到firebase firestore数据库中?
【发布时间】:2019-12-24 19:55:07
【问题描述】:

我正在尝试将很长的字符串插入到 firebase firestore 我收到此错误消息

Exception has occurred.
PlatformException (PlatformException(Error performing setData,
INVALID_ARGUMENT: The value of property "json" is longer than 1048487 bytes., null))

我的代码是:

  Future<void> addREportToDB(String addedCount, String deletCount, String updatedCount, String json) {
        // Map decodedCloud = jsonDecode(json);
    return Firestore.instance.collection("reports").add({
      "dateCreate": new DateTime.now(),
      "addedCount": addedCount,
      "deletCount": deletCount,
      "updatedCount": updatedCount,
      "json": json,
      // "json":decodedCloud,
    }).then((doc) {
      print(doc.documentID.toString());
    });
  }

和 (json) 变量这是我从另一个 API 获得的文本,该文本包含 600 多名员工的数据,格式为 JSON 字符串 我只需要保存它

任何帮助将不胜感激

【问题讨论】:

  • 如果您正在获取 json 数据,为什么不将其分解为独立的 json 样式文档。甚至可能将每个元素放入一个数组中。迭代 600 多个元素并单独处理它们而不是仅仅将它们全部存储在一个节点(字段)中应该不是什么大问题。

标签: json firebase flutter dart google-cloud-firestore


【解决方案1】:

您无法将超出该限制的数据添加到单个文档中。因此,在您可以将多少数据放入单个文档时存在一些限制。根据usage and limits的官方文档:

文档的最大大小:1 MiB(1,048,576 字节)

如您所见,单个文档中的数据总量限制为 1 MiB。您可以使用替代解决方案来存储大量数据。您应该尝试使用Firebase Storage

【讨论】:

  • 好吧,如果 1 char == 8 位,则限制为大约 100 万个字符,或者?
  • @PavelPoley 这取决于键的大小和您存储在其中的值。有一个library 可以帮助您对照最大 1 MiB(1,048,576 字节)配额检查文档的大小。
  • 嘿阿里。我可以帮助您了解其他信息吗?如果您认为我的回答对您有所帮助,请考虑通过单击左侧投票箭头下方的复选标记(✔️)来接受它。应将颜色更改为绿色。我会很感激的。谢谢!
【解决方案2】:

Cloud Firestore 中文档的最大大小为 1MB。如果您想存储更多数据,请考虑将其拆分为更多文档,或者(在这种情况下更有可能)将其存储在 Cloud Storage(也存在 Flutter SDK)中。

【讨论】:

    【解决方案3】:

    只需将它们单独保存到firestore,当您想在应用程序中使用它们时,您可以使用字符串操作将您保存的两个单独的字符串连接起来,使其成为原始长字​​符串

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-24
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 2018-12-09
      • 1970-01-01
      • 1970-01-01
      • 2019-03-31
      相关资源
      最近更新 更多