Из моего приложения Android я загружаю несколько файлов, принадлежащих общему объекту одновременно. На общий объект у меня есть от 1 до 100 файлов; эти файлы заказаны. Я хочу иметь возможность получить эти упорядоченные файлы по его ссылке. Должна быть возможность получить его снова как можно скорее.
То, что у меня есть сейчас и что отлично работает для небольшого количества файлов:
Каждый файл имеет метаданные , ссылка на объект root и индекс файла. При загрузке вызывается функция onFinalize
Firebase. Здесь, на /objects/{reference}
документ получен. Этот документ содержит массив, в котором имя файла сохраняется для правильного индекса. Используя транзакцию, это работает. Если происходит сбой из-за параллелизма, он пытается снова.
Однако, если загружено много файлов, он сталкивается с ограничением в 5 попыток и выдает:
Error: 10 ABORTED: Too much contention on these documents. Please try again.
Я мог бы резко увеличить maxAttempts
или напишите более сложную стратегию повторов, но я бы лучше улучшил свою модель данных. Будет ли карта более подходящей? Или имеет те же ограничения, потому что у него все еще есть один базовый документ?
TL; DR: Для одного {reference}
я хочу сохранить несколько index
-> filename
сразу из нескольких вызовы функций. Каков наилучший тип данных, модель данных для этого?