Получить только измененное поле документа - PullRequest
0 голосов
/ 09 марта 2019

Я обнаружил, что прослушивание изменений документа всегда загружает полный документ снова и снова .

У меня проблема с этим в следующем сценарии: размер документа приближается к 1 MiB (что составляет предел для размера документа ). Теперь есть поле number, которое является полем only и обновляет , что составляет всего несколько байтов. Однако при прослушивании этого изменения (например, лайков в сообщении) всегда загружаются полные 1 MiB данных, даже если бы было достаточно нескольких байтов.

Я знаю, что я мог бы просто переместить данные, которые занимают большую часть 1 MiB, во вложенную коллекцию в один документ, но это было бы не только unidiomatic и показалось бы очень нелогичным, но и значительно увеличьте мой счет Firestore, потому что мне понадобится два вместо один документ, который будет считан для первоначального извлечения данных.

Есть ли другой способ решить эту проблему?

1 Ответ

1 голос
/ 10 марта 2019

Firestore всегда возвращает полные документы. Невозможно заставить его вернуть подмножество полей в документе, ни путем явного запроса этих полей (сродни выражению SELECT FIELD1, FIELD2), ни путем неявного запроса (как вы делаете, запрашивая только измененные поля).

Если вы хотите ограничить использование полосы пропускания для часто меняющихся документов с большой полезной нагрузкой, ваш обходной путь помещения более статичной части данных в отдельный документ действителен.

Также см .:

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