Доступ к firestore напрямую из мобильного приложения или через внутренний сервер?

Вопрос системного дизайна:

Я использую firebase для своего мобильного приложения с firestore в качестве базы данных и firebase в качестве бэкэнда.

Do I:

  1. Доступ к Firestore прямо из мобильного приложения
  2. Разрешить только косвенный доступ через промежуточное ПО / внутренний сервер (например, функции firebase)

Я ищу совета с точки зрения проектирования системы, какая из двух альтернатив лучше. Традиционно я думаю, что доступ к БД напрямую от клиента будет осужден, но в официальной документации firestore Google, похоже, действительно поощряет прямой доступ без какого-либо внутреннего сервера между ними.




Ответы (2)


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

IMHO, этот вопрос не следует задавать, что лучше, потому что каждый из этих продуктов, Cloud Firestore и Облачные функции для Firebase - это два совершенно разных продукта с разными механизмами, но одинаковыми цель.

Как также упомянул Джек Вудворд в своем ответе, первое решение может помочь вам синхронизировать данные между клиентскими приложениями. Как и в случае с базой данных Firebase Realtime, основной функцией является функция реального времени. В обеих базах ваши данные хранятся в формате JSON и синхронизируются в реальном времени с каждым подключенным клиентом.

По поводу второго варианта, как в официальной документации:

Облачные функции для Firebase позволяют автоматически запускать внутренний код в ответ на события, вызванные функциями Firebase и запросами HTTPS. Ваш код хранится в облаке Google и работает в управляемой среде. Нет необходимости управлять собственными серверами и масштабировать их.

Если вы просто спрашиваете, что вы можете делать с облачными функциями, см. варианты использования облака Функции:

  • Уведомлять пользователей, когда происходит что-то интересное.
  • Выполните очистку и обслуживание базы данных в реальном времени.
  • Выполняйте интенсивные задачи в облаке, а не в приложении.
  • Интегрируйтесь со сторонними сервисами и API.
person Alex Mamo    schedule 26.11.2018
comment
Привет, deekay42! Могу я помочь вам с другой информацией? Если вы считаете, что мой ответ вам помог, примите его (✔️). Я был бы очень признателен. Спасибо! - person Alex Mamo; 01.12.2020

Оба продукта баз данных Firebase предназначены для использования на клиенте. Одна из его потрясающих функций - автоматическая синхронизация изменений в реальном времени. Так что определенно он предназначен для потребления клиентом. Это не значит, что вы также не можете потреблять с сервера. Но все дело в эффективной настройке правил, чтобы вы могли запрашивать у клиента. Вам нужно будет использовать Firebase Auth, если вы хотите защитить свою базу данных. Некоторые ссылки на соответствующие документы.

Правила безопасности Firestore Пример некоторых правил безопасности для запросов

Firebase Auth

А если у вас уже есть метод аутентификации и вы не можете перейти на Firebase Auth, вы можете использовать Custom Auth, где при аутентификации человека вы выдаете ему токен Firebase, с помощью которого вы можете войти в систему в приложении.

person Jack Woodward    schedule 26.11.2018