Получите доступ к firestore напрямую из мобильного приложения или через бэкэнд-сервер? - PullRequest
0 голосов
/ 26 ноября 2018

Вопрос по проектированию системы:

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

Do I:

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

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

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

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

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

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

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

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

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

  • Оповещение пользователей, когда происходит что-то интересное.
  • Выполнение санации и обслуживания базы данных в реальном времени.
  • Выполнение интенсивных задач в облаке, а не в приложении.
  • Интеграция со сторонними сервисами и API.
0 голосов
/ 26 ноября 2018

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

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

Firebase Auth

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

...