Позвольте мне объяснить ситуацию (извините мой английский, я сделаю все возможное):
У меня есть два проекта Firebase в моей Firebase-консоли: coretechtest-ce207 и агон-плагин
coretechtest-ce207 является основным приложением, а агон-плагин - это дополнительное приложение, которому необходимо подключиться к auth и базе данных coretechtest-ce207. Насколько я знаю, я не могу разместить два приложения в одном проекте, поэтому я сделал для отделенных проектов. Основной работает отлично, я могу делать все, что хочу (регистрация, база данных и т.д.), Но мне нужен главный и второй как на одном и том же сервере и на БД. Агон-плагин (вторичный) создается на основе приложения FriendlyChat и подключается непосредственно к серверу, в котором размещено приложение. Например:
// Initializes FriendlyChat.
function FriendlyChat() {
this.initFirebase();
}
// Sets up shortcuts to Firebase features and initiate firebase auth.
FriendlyChat.prototype.initFirebase = async function() {
// Shortcuts to Firebase SDK features.
this.auth = firebase.auth();
this.database = firebase.database();
this.storage = firebase.storage();
// Initiates Firebase auth and listen to auth state changes.
await this.auth.onAuthStateChanged(this.onAuthStateChanged.bind(this));
};
Как вы видите, нет необходимости
apiKey: "AIzaSyAfGm_ILVdfsd--Fw7aascc8tAB73q__Bbko",
authDomain: "coretechtest-ce207.firebaseapp.com",
databaseURL: "https://coretechtest-ce207.firebaseio.com",
projectId: "coretechtest-ce207",
storageBucket: "coretechtest-ce207.appspot.com",
messagingSenderId: "994718782"
Я попытался заменить его с помощью этих параметров, чтобы он
FriendlyChat.prototype.initFirebase = async function() {
// Shortcuts to Firebase SDK features.
this.auth = 'coretechtest-ce207.firebaseapp.com';
this.database = 'https://coretechtest-ce207.firebaseio.com';
this.storage = 'coretechtest-ce207.appspot.com';
// Initiates Firebase auth and listen to auth state changes.
await this.auth.onAuthStateChanged(this.onAuthStateChanged.bind(this));
};
Но не повезло, можете ли вы сказать мне, что я делаю неправильно? Я думал, что замена этого будет связана с моим основным проектом, но это не... =/Надеюсь, вы поймете, что я пытаюсь сказать!
Спасибо!
Если вы используете Web и хотите разместить 2 webapps, которые используют одну и ту же базу данных, у вас есть пара вариантов. Бесплатно: единственное, что связывает веб-приложение с вашим db, - это ключи api в конфигурации Firebase, используемые для инициализации firebase в веб-приложении. Если 2 приложения используют те же настройки, они могут использовать один и тот же дБ. Если вы хотите разместить оба веб-приложения с помощью firebase бесплатно - только 1 приложение может быть размещено бесплатно для каждого проекта. Однако вы можете легко создать второй новый проект и разместить свое второе веб-приложение в этом новом проекте. Но не используйте новые настройки веб-api из этого нового проекта внутри вашего приложения. Вместо этого используйте те же самые оригинальные проекты. 2 приложения в 2 проектах могут использовать одну и ту же БД, если они используют ту же конфигурацию ключей API. (только выберите хостинг firebase при выполнении "firebase init" из cli для второго приложения)
Платный вариант: если вы перейдете на страницу хостинга в консоли firebase, и вы прокрутите вниз -you, вы увидите карту, предлагающую размещение более 1 приложения в 1 проекте. Он требует, чтобы вы обновлялись до планового плана -you -го. Который может или не может стоить вам денег.
Не 100% уверены в Web, но он должен быть похож на Android:
Затем сделайте все, что вы сделали в своем первом приложении, во второе приложение
Самое главное, не размещайте свой ключ api в Интернете!