Я смотрю на создание мультитенантного приложения с использованием Firebase и Firestore. Количество арендаторов будет небольшим (примерно 6 изначально), и конечные пользователи не будут создавать собственные экземпляры в приложении, а будут строго контролироваться администраторами.
Моя идеальная ситуация - иметь только одно приложение, к которому я могу подключить несколько доменов, и направлять запросы в конкретные базы данных для их выполнения.
У меня есть несколько проблем:
Я прочитал в документации, что я могу создать несколько баз данных для одного приложения, но не вижу параметров в моей панели администратора, поэтому я не уверен, является ли документация неверной в настоящее время (или относится ли она к БД в реальном времени) ).
Я не хочу, чтобы пользователи, которые регистрируются, были зарегистрированы для всех арендаторов, и, учитывая то, что, похоже, работает аутентификация Firebase, я не вижу способа указать, в каком домене регистрируется пользователь. У меня была мысль об этом в коллекции, которая отслеживает домены, частью которых является пользователь, и подделывала его так, что он держит пользователей в изоляции, но если пользователь зарегистрировался в «двух» арендаторах и хотел изменить свой логин учетные данные, которые могут изменить их по всей сети, и могут привести к путанице.
Так что, похоже, что это не будет работать так же чисто, как хотелось бы, что указывает на вариант 2:
Имейте одно приложение внешнего интерфейса, которое имеет ссылки на все приложения Firebase, к которым оно может подключиться, и связывается с бэкэндами отдельных приложений для разделения данных и аутентификации пользователя. Это решило бы проблему разрозненного пользователя, но тогда я бы поддерживал несколько различных приложений на бэкэнде, и весь смысл создания новой версии этого продукта заключается в том, чтобы избавиться от необходимости поддерживать несколько похожих, но немного разных кодовых баз. Решение этой проблемы состояло бы в том, чтобы развернуть одно и то же хранилище кода в разных приложениях на firebase: позволит ли CLI каждый раз выбирать цель развертывания?
Полагаю, вариант 3 заключается в том, чтобы приложение React без головы связывалось с сервером узлов или чем-то еще, но тогда я бы потерял все прелести Firebase, и я действительно копаю Firebase.
Это решаемая проблема? Или я пытаюсь втиснуть квадратный колышек в круглое отверстие?
Спасибо!