Очевидно, в вашем коде нет ничего плохого, однако важно отметить, что операции Firestore будут занимать значительно больше времени, чем добавление поддельных данных в список ваших устройств, причина в том, что ваше приложение ожидает обещания выполняется, и результаты запроса поступают асинхронно, чтобы затем продолжить его операции, что занимает некоторое время.
2 секунды действительно больше, чем вы ожидаете, и это может быть вызвано проблемами с задержкой, вызванными физическим расстояние между вами и вашим экземпляром пожарного магазина. Как вы можете видеть в документации Best Practices для Firestore , вам следует подумать о том, чтобы иметь экземпляр ближе к тому месту, где вы находитесь, чтобы уменьшить задержку и повысить производительность.
Хорошая новость заключается в том, что проблема не в сложности ваших данных или в количестве данных, поэтому, если количество записей увеличивается, а поскольку запросы к хранилищам данных выполняются очень быстро, количество времени для извлечения данных не должно изменяться в течение значительно более длительного периода.