Является ли использование локальной базы данных хорошим способом уменьшить чтение / запись данных из облачной базы данных? - PullRequest
0 голосов
/ 01 февраля 2020

Я использую Cloud Firestore в приложении React Native и пытаюсь свести операции чтения / записи к минимуму. Я просто подумал об использовании локальной БД, чтобы все данные, извлеченные из облака, сохранялись в локальном хранилище, но я бы добавил прослушиватель моментальных снимков для прослушивания изменений при каждом запуске приложения пользователем.

Это хороший подход к тому, к чему я стремлюсь? Если нет, то почему? И если да, есть ли у вас какие-либо предложения, связанные с его реализацией?

Ответы [ 2 ]

1 голос
/ 02 февраля 2020

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

Во-первых, Firestore не использует HTTP, и результаты запросов никогда не будет поддерживаться вашим типичным кэшем браузера. Утверждения, которые дает ответ о семантике кэширования HTTP, просто не применяются.

Во-вторых, в Firestore SDK используется внутренний кэш, который по умолчанию включен на Android и iOS, потому что его кэш-память является почти всегда пойдет на пользу конечному пользователю. Веб-приложения хорошо бы включили и этот кеш. Требуется одна строка кода. Этот кеш будет запрошен, когда клиент находится в автономном режиме, и может быть запрошен напрямую, если желательны результаты в кешировании.

В-третьих, добавление дополнительного уровня кеша или персистентности на самом деле очень необходимо для приложений, которые должны полностью использоваться в автономном режиме. , Firestore не был предназначен для использования полностью в автономном режиме, поэтому наличие опции local-first необходимо для некоторых приложений. Дополнительный кеш можно синхронизировать с Firebase как своего рода облачное резервное копирование.

В общем, вопрос технически слишком широк для переполнения стека, и для того, чтобы понять, стоит ли включать кеш Firstore или добавить, нужно поговорить. дополнительный кэш поверх этого. Но совершенно очевидно, что кэширование клиента - плохая идея.

0 голосов
/ 01 февраля 2020

Нет, это не очень хороший подход.

Кэширование данных, как правило, хорошая идея, однако реализация этого на уровне СУБД потребует написания большого количества кода для реализации механизма кэширования, который вам еще предстоит определить. Причина в том, что это плохая идея, потому что JavaScript на клиенте уже имеет доступ к уровню данных с очень четко определенной семантикой кэширования, уже реализованной в среде выполнения - http

...