Firestore ArrayUnion добавляет дубликаты - PullRequest
0 голосов
/ 03 марта 2019

Я использую Firestore для хранения массива сообщений в приложении чата.Для каждого отправляемого сообщения я обновляю массив сообщений с помощью «arrayUnion».При обновлении иногда добавляются два элемента (в клиентскую БД, которые быстро перезаписываются сервером)

С в документах : "arrayUnion () добавляет элементы в массив, но только элементыуже нет ".Однако в моем случае я вижу, что мой клиентский экземпляр Firebase DB добавит дублирующиеся данные, а затем сервер исправит это при успешной записи и дедупликации.

  db.update({
    messages: firebase.firestore.FieldValue.arrayUnion(serverMessage)
  })

В течение ~ 1 секунды у меня есть дубликаты вмассивы.Я не уверен, почему мои данные дублируются (я подтвердил, что у меня только один прослушиватель на клиенте) --- но я также не понимаю, почему клиентский экземпляр базы данных Firebase допускает дублирующую запись.Вот визуальный ошибок, которые я вижу.

...