Динамическое переключение на разные базы данных проекта Firebase (Javascript) - PullRequest
0 голосов
/ 30 апреля 2018

Мне нужно разработать сводное веб-приложение для администратора, которое должно подключаться к различным базам данных проекта Firebase (из разных учетных записей Google). Можно ли динамически переключаться на разные базы данных проекта Firebase с помощью JavaScript?

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

@ Пуф дал лучший ответ. Я просто добавлю один момент здесь. Больше мер безопасности, если вы загружаете его в браузер, есть вероятность, что все ваши настройки могут быть раскрыты.

Я предполагаю, что у вас есть свобода создавать новую базу данных под названием Router (или что вы хотите) и сначала по умолчанию выполнять вход пользователя (auth). Затем на основе условия отправьте конфигурацию для среды, необходимой для этого конкретного пользователя.

eg:
{
    "env":{
       "e1":{
          apiKey: "<API_KEY>",
          authDomain: "<PROJECT_ID>.firebaseapp.com",
          databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
          storageBucket: "<BUCKET>.appspot.com"
       },
       "e2":{
          apiKey: "<API_KEY2>",
          authDomain: "<PROJECT_ID2>.firebaseapp.com",
          databaseURL: "https://<DATABASE_NAME2>.firebaseio.com",
          storageBucket: "<BUCKET2>.appspot.com"
       }
     }
  }
0 голосов
/ 30 апреля 2018

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

var config = {
    apiKey: "<API_KEY>",
    authDomain: "<PROJECT_ID>.firebaseapp.com",
    databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
    storageBucket: "<BUCKET>.appspot.com",
};

var database = firebase.database();

var secondaryAppConfig = {
    apiKey: "<ANOTHER_API_KEY>",
    authDomain: "<ANOTHER_PROJECT_ID>.firebaseapp.com",
    databaseURL: "https://<ANOTHER_DATABASE_NAME>.firebaseio.com",
    storageBucket: "<ANOTHER_BUCKET>.appspot.com",
};

// Initialize another app with a different config
var secondary = firebase.initializeApp(secondaryAppConfig, "secondary");

// Retrieve the database.
var secondaryDatabase = secondary.database();

А теперь выберите на основе некоторого условия, характерного для вашего приложения:

var db = my_condition ? database : secondaryDatabase;

См. Пример в документации Firebase .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...