Firebase Firestore用于在用户对用户聊天中存储数千条消息?

Firebase Firestore用于在用户对用户聊天中存储数千条消息?,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我刚刚意识到Firestore每个文档有1MB的限制。有人能告诉我如何在不删除旧信息的情况下处理大型对话吗?这是我目前的结构 定义对话名称(用户应始终以同一对话结束): var A='Chris'//用户1 var B='Nick'//用户2 var对话=(A“+对话) 保存聊天对话名称以备将来使用(列出用户的所有聊天): 老实说,将讨论的所有信息放在一个文档中是一个糟糕的设计。每个邮件都应该是集合中自己的文档。在一般意义上,应用程序永远不应该在文档中存储不断增长的数据列表,如果没有对该数据定

我刚刚意识到Firestore每个文档有1MB的限制。有人能告诉我如何在不删除旧信息的情况下处理大型对话吗?这是我目前的结构

定义对话名称(用户应始终以同一对话结束):

var A='Chris'//用户1
var B='Nick'//用户2
var对话=(A“+对话)
A='Nick'//用户1
B='Chris'//用户2
var对话=(A“+对话)
保存聊天对话名称以备将来使用(列出用户的所有聊天):


老实说,将讨论的所有信息放在一个文档中是一个糟糕的设计。每个邮件都应该是集合中自己的文档。在一般意义上,应用程序永远不应该在文档中存储不断增长的数据列表,如果没有对该数据定义非常明确的上限


如果您仍然担心每个文档1MB的限制,则会告诉您如何计算该文档的大小,因为您已经知道其中将包含哪些数据。

老实说,将讨论的所有消息放在一个文档中是一个糟糕的设计。每个邮件都应该是集合中自己的文档。在一般意义上,应用程序永远不应该在文档中存储不断增长的数据列表,如果没有对该数据定义非常明确的上限


如果您仍然关心每个文档1MB的限制,则会告诉您如何计算该文档的大小,因为您已经知道其中将包含哪些数据。

这对我来说不是问题,我将为每条消息使用不同的文档。你是说,例如,对话的名字应该是
Chris_Nick
,并且在不同的文档中的每条消息中?在这种情况下,它们将如何分类?对不起,我是NoSQL实时数据库的新手……您可以添加一个字段来确定它们的排序方式。如果你想学合唱,请使用时间戳。你可以随意命名对话。所有NoSQL数据建模的底线是:您必须确定如何查询数据,而您的文档数据应该促进这一点。没有对错之分,只要对查询有效。谢谢您的解释!我不知道我可以存储那么多文档并以同样的方式查询它们。我现在就做:-)这对我来说不是问题,我会为每条消息使用不同的文档。你是说,例如,对话的名字应该是
Chris_Nick
,并且在不同的文档中的每条消息中?在这种情况下,它们将如何分类?对不起,我是NoSQL实时数据库的新手……您可以添加一个字段来确定它们的排序方式。如果你想学合唱,请使用时间戳。你可以随意命名对话。所有NoSQL数据建模的底线是:您必须确定如何查询数据,而您的文档数据应该促进这一点。没有对错之分,只要对查询有效。谢谢您的解释!我不知道我可以存储那么多文档并以同样的方式查询它们。我现在就做:-)
"conversations" : {
  "Chris" : {
    "Chris_Nick": true
  },
  "Nick" : {
    "Chris_Nick": true
  }
}