Получать данные Firebase RD с помощью библиотеки JS или через сервер NodeJS? - PullRequest
0 голосов
/ 02 января 2019

Я работаю над проектом, использующим базу данных Firebase Realtime, и мне было интересно, лучше ли использовать библиотеку JS для получения данных со стороны клиента или использовать библиотеку NodeJS для получения клиентского запроса и получения данныхчерез сервер NodeJS и отправьте его обратно клиенту.Есть ли какие-либо преимущества или недостатки любого решения?(Безопасность, простота внедрения, скорость и т. Д.)

1 Ответ

0 голосов
/ 02 января 2019

Когда это возможно, предпочтение отдается клиентскому SDK.Вот что вы теряете при проксировании через сервер:

  • Нет обновлений в реальном времени. Если вы не хотите тратить много времени, придумывая собственный способ переноса обновленийЧерез веб-сокет клиент сможет получить только одно обновление за запрос.У вас не будет возможности получать обновления в режиме реального времени, передаваемые клиенту по мере их появления.

  • Нет правил безопасности. Вы не сможетеэффективно контролировать доступ к вашей базе данных с помощью правил безопасности.Поскольку Admin SDK работает с полным контролем над всей базой данных, вам придется придумать свой собственный способ выяснить, разрешено ли клиенту читать или писать.Вы можете попытаться обойти это, инициализируя административный sdk при каждом запросе, чтобы включить его в определенный uid, но это неэффективно и слишком много лишнего кода.

  • Нет клиентской стороныcache. Клиентские SDK базы данных реального времени локально кэшируют все данные, поэтому будущие запросы к неизменным данным на сервере выполняются быстро и обходятся дешевле.Вы всегда можете попробовать реализовать это самостоятельно, но будьте готовы потратить на это много времени.

  • Нет автономной синхронизации. Когда вы пишете данные с помощью клиентаSDK, данные на самом деле выглядят измененными на сервере (с его собственной точки зрения), даже если он не подключен.И когда он возвращается в оперативный режим, он автоматически синхронизирует эти изменения с сервером без необходимости что-либо делать.Если вы используете прокси-сервер через сервер, вам придется реализовать собственную логику повторных попыток, если вы хотите такого рода поведение.

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

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