Динамически переключаться на разные базы данных проекта firebase (Javascript)

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

Конечно вы можете. Что касается вашего кода, все запросы к firebase - это методы REST (для вашего удобства, возможно, завернутые в библиотеку). Обновите свой вопрос, чтобы указать, откуда эти запросы выполняются (браузер? Сервер?) И какую библиотеку вы используете (если есть). Пожалуйста, попробуйте добавить код, указывающий на то, что вы уже пробовали.

Chirag Ravindra 30.04.2018 11:59
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
5
1
707
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

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.

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

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

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"
       }
     }
  }

Другие вопросы по теме