【问题标题】:What happens if the document size exceeds 1MB in firestore?如果 Firestore 中的文档大小超过 1MB,会发生什么情况?
【发布时间】:2019-01-28 10:33:35
【问题描述】:

我在我的 android 聊天应用程序中使用 cloud firestore,我想将所有消息(传入和传出,基本上维护设备的消息历史记录)存储在文档的数组列表中,但文档的最大大小是1MB。如果我尝试存储消息时文档大小超过 1MB,会发生什么情况

是否有任何 API 可用于在编写之前获取文档的大小?

请建议我使用 Firestore 维护消息历史记录的更好方法?

【问题讨论】:

    标签: android firebase google-cloud-firestore


    【解决方案1】:

    如果文档大小超过 1MB。它会抛出类似这样的错误“错误:3 INVALID_ARGUMENT:无法写入文档,因为它超出了允许的最大大小。”

    我也认为没有用于获取文档大小的 API。 一种方法是,您可以从集合中获取整个数据并将其字符串化,删除空格并计算字符数,然后根据文档 https://firebase.google.com/docs/firestore/storage-size

    添加缓冲区值

    【讨论】:

      【解决方案2】:

      编辑: 2020 年 4 月 13 日:

      要始终保持低于 1 MiB(1,048,576 字节)的最大值限制,有一个库可以帮助您检查:

      这个库背后的算法是关于Storage Size的官方文档中解释的算法。


      如果我尝试存储消息时文档大小超过 1MB,会发生什么情况

      不能超过文档的大小。你被限制在 1MiB。

      是否有任何 API 可用于在编写之前获取文档的大小?

      据我所知,没有 API 可以做到这一点。

      请建议一种使用 Firestore 维护消息历史记录的更好方法?

      将所有历史消息作为文档存储在集合中。如果您有兴趣,可以在这里找到关于how to structure a Firestore database 的聊天应用教程。

      【讨论】:

        猜你喜欢
        • 2018-02-22
        • 1970-01-01
        • 1970-01-01
        • 2010-12-08
        • 1970-01-01
        • 2011-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多