#firebase #google-cloud-firestore
#firebase #google-облако-firestore
Вопрос:
Я сохраняю историю поездок (массив-карта) в firestore. приложение вылетает (приложение Flutter) при попытке сохранить карту большого массива (длина массива может превышать 10 000). а также в том же документе содержится более 30 полей.
это моя карта (список карт).
Map<String, dynamic> toMap() => {
"latitude": latitude,
"longitude": longitude,
"accuracy": accuracy,
"altitude": altitude,
"speed": speed,
"speed_accuracy": speedAccuracy,
"heading": heading,
"time": time,
};
Есть ли какое-либо решение для хранения такого массива в firestore?
Ответ №1:
Невозможно превысить максимальный размер документа в Firestore.
Вместо этого вам следует разделить каждый элемент данных на отдельный документ, возможно, во вложенную коллекцию, вложенную в основной документ.
Комментарии:
1. извините, сэр, я не понимаю it.my Английский не очень хорош. вы имеете в виду 10 000 документов внутри вложенной коллекции? что вы имеете в виду ** разделить каждый элемент данных на отдельный документ**
2. Да, вы можете поместить 10 000 отдельных элементов в документы в рамках вложенной коллекции.
Ответ №2:
документы firestore имеют верхний предел в 1 МБ памяти, что не означает, что разработчик должен заполнять его до 1 МБ. Более тяжелые документы будут иметь следующие недостатки:
- В низкой сети документ не загружается.
- Вряд ли существует случай, когда пользователю необходимо получить доступ к такому количеству данных. Одна модель данных не может удовлетворить все потребности приложения, поэтому данные должны быть разделены на несколько моделей данных.
- За дополнительные запрашиваемые данные будет взиматься дополнительная плата за выход.
Таким образом, вы должны моделировать свою базу данных, учитывая эти вещи. Как упоминал Doug, вы должны разбить свой контент на несколько документов.