Интеграция MongoDB с Firebase

#mongodb #firebase #flutter #google-cloud-firestore

#mongodb #firebase #флаттер #google-облако-firestore

Вопрос:

У меня есть приложение Flutter (все еще в разработке), которое в настоящее время использует Firebase для серверной части. В частности, я использую аутентификацию Firebase, хранилище, облачные функции, Firestore и в будущем я готов использовать удаленную конфигурацию, динамические ссылки, обмен сообщениями в облаке и другие функции Firebase.

Я дошел до того, что Firestore уже недостаточно для моих целей: полнотекстового поиска, географических запросов и расширенных запросов в целом. Я знаю, что для этого я могу использовать сторонние сервисы, такие как Algolia, но это слишком дорого, и я хотел, чтобы что-то уже было интегрировано с моей базой данных.

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

  1. Могу ли я разместить MongoDB на хостинге Firebase (я не знаю, возможно ли это вообще?) или просто использовать MongoDB Atlas и получить к нему прямой доступ (см. Мой следующий вопрос) из моего приложения?
  2. Каков наилучший способ подключения моего приложения к MongoDB? Напрямую из приложения (используя Rest API) или используя облачные функции Firebase (поэтому я не буду раскрывать свою базу данных)?
  3. Могу ли я использовать токены аутентификации Firebase для доступа к MongoDB или я должен использовать службу аутентификации MongoDB?

Если есть еще что-то, что мне нужно рассмотреть, прежде чем я начну переключаться на MongoDB, пожалуйста, укажите это мне.

Комментарии:

1. Так что же вы сделали в конце концов? Я начинаю проект и нуждаюсь в сложном запросе диапазона. К сожалению, Firestore не предлагает этого, как и AWS Amplify. Я все еще ищу хороший подход, прежде чем приступить к написанию кода.

Ответ №1:

  1. Firebase Hosting — это CDN для размещения статических веб-сайтов. Таким образом, невозможно разместить приложение, подобное MongoDB server. Вы не можете разместить MongoDB ни в каких службах Firebase. Вы должны развернуть его где-нибудь еще. Есть несколько вариантов. Вы можете либо получить VPS и установить на нем сервер MongoDB. Но вам придется управлять своей собственной базой данных, что может быть сложно и может занять довольно много времени. Другой вариант — использовать облачную базу данных, такую как MongoDB Atlas. Это более быстрое и безопасное решение. Однако цены могут быть высокими. Итак, вы должны решить в зависимости от ваших потребностей.

  2. Если у вас есть работающий сервер MongoDB, вам необходимо написать API для клиентских приложений для безопасного взаимодействия. Клиентские приложения никогда не должны напрямую взаимодействовать с экземпляром базы данных. В этом случае вы можете использовать облачные функции Firebase для создания API.

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

В целом, вы собираетесь добавить еще один уровень в свою архитектуру. Это возможно, но для настройки потребуется время, и вы потеряете некоторые преимущества firestore, такие как автономное сохранение.