如何将很长的字符串保存到firebase firestore数据库中?

Posted

技术标签:

【中文标题】如何将很长的字符串保存到firebase firestore数据库中?【英文标题】:How to save very long string into firebase firestore database? 【发布时间】: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 多个元素并单独处理它们而不是仅仅将它们全部存储在一个节点(字段)中应该不是什么大问题。 【参考方案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,当您想在应用程序中使用它们时,您可以使用字符串操作将您保存的两个单独的字符串连接起来,使其成为原始长字​​符串

【讨论】:

以上是关于如何将很长的字符串保存到firebase firestore数据库中?的主要内容,如果未能解决你的问题,请参考以下文章

保存拍摄时间很长的照片

网页截图分段保存

Firebase 存储上传图像不适用于亚马逊火灾(型号:Fire 7)

java更新一个很长的字符串到oracle某表clob字段里

从 JSON 中提取很长的字符串到 CLOB

长整数到可读字符串[重复]