Когда это возможно, предпочтение отдается клиентскому SDK.Вот что вы теряете при проксировании через сервер:
Нет обновлений в реальном времени. Если вы не хотите тратить много времени, придумывая собственный способ переноса обновленийЧерез веб-сокет клиент сможет получить только одно обновление за запрос.У вас не будет возможности получать обновления в режиме реального времени, передаваемые клиенту по мере их появления.
Нет правил безопасности. Вы не сможетеэффективно контролировать доступ к вашей базе данных с помощью правил безопасности.Поскольку Admin SDK работает с полным контролем над всей базой данных, вам придется придумать свой собственный способ выяснить, разрешено ли клиенту читать или писать.Вы можете попытаться обойти это, инициализируя административный sdk при каждом запросе, чтобы включить его в определенный uid, но это неэффективно и слишком много лишнего кода.
Нет клиентской стороныcache. Клиентские SDK базы данных реального времени локально кэшируют все данные, поэтому будущие запросы к неизменным данным на сервере выполняются быстро и обходятся дешевле.Вы всегда можете попробовать реализовать это самостоятельно, но будьте готовы потратить на это много времени.
Нет автономной синхронизации. Когда вы пишете данные с помощью клиентаSDK, данные на самом деле выглядят измененными на сервере (с его собственной точки зрения), даже если он не подключен.И когда он возвращается в оперативный режим, он автоматически синхронизирует эти изменения с сервером без необходимости что-либо делать.Если вы используете прокси-сервер через сервер, вам придется реализовать собственную логику повторных попыток, если вы хотите такого рода поведение.
Возможно, через сервер может быть какое-то преимущество, но оно весьмазависит от того, что вы пытаетесь сделать, и от того, как вы решите при этом рассчитать экономию.