Firestore для хранения тысяч сообщений в чате пользователя? - PullRequest
0 голосов
/ 06 января 2020

Я только что понял, что у Firestore есть 1 МБ на лимит документа. Может кто-нибудь подсказать, как обрабатываются большие разговоры, не стирая старые сообщения? Вот моя текущая структура.

Определение имени разговора (пользователи всегда должны заканчивать один и тот же разговор):

var A = 'Chris' // User 1
var B = 'Nick' // User 2

var conversation = (A < B ? A + '_' + B : B + '_' + A)

console.log(A + ', ' + B + ' => ' + conversation)

A = 'Nick' // User 1
B = 'Chris' // User 2

var conversation = (A < B ? A + '_' + B : B + '_' + A)

console.log(A + ', ' + B + ' => ' + conversation)

Сохранение имен разговоров в чате для последующего использования (перечислить все чаты для пользователя ):

"conversations" : {
  "Chris" : {
    "Chris_Nick": true
  },
  "Nick" : {
    "Chris_Nick": true
  }
}

1 Ответ

2 голосов
/ 06 января 2020

Если честно, плохой дизайн - помещать все сообщения обсуждения в один документ. Каждое сообщение должно быть своим собственным документом в коллекции. В общем смысле приложения никогда не должны хранить растущие списки данных в документе без очень четко определенного ограничения для этих данных.

Если вас все еще беспокоит ограничение в 1 МБ на документ документация говорит вам, как вычислить размер этого документа, учитывая, что вы уже знаете, какие данные будут go в нем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...