один из экземпляров базы данных в реальном времени Firebase не аутентифицирован при инициализации для нескольких баз данных в веб-JavaScript - PullRequest
0 голосов
/ 04 мая 2019

в сети у меня есть проект firebase с двумя экземплярами базы данных в одном проекте / приложении

после успешного входа в систему с помощью firebase auth;

вторая ссылка на базу данных не аутентифицирована и, следовательно, доступ к базе данных не выполнен; с auth != null в правилах.

если я заменил второй URL-адрес базы данных в объекте конфигурации и поместил URL-адрес базы данных по умолчанию в config2, то вторая база данных начинает работать с проверкой подлинности, но старая база данных не работает с правилом доступа к базе данных auth != null

Как я могу использовать обе базы данных в коде веб-javascript, если у кого-то не возникло вышеуказанных проблем?

Правильно ли выполнена инициализация?

enter image description here

Заранее спасибо

1 Ответ

1 голос
/ 11 мая 2019

Должен быть надлежащим образом задокументирован в документации Firebase для Auth в сети. но, к сожалению, это не для этого вопроса.

Таким образом, экземпляры аутентификации firebase поддерживаются отдельно, включая обратный вызов auth

Так что я должен был сделать как ниже

await firebase.auth().signInWithEmailAndPassword(_ths.form.email, _ths.form.password);
await firebase.app('app2').auth().signInWithEmailAndPassword(_ths.form.email, _ths.form.password);


let authPromises = [];
authPromises.push(new Promise((resolve,reject)=>{
  firebase.auth().onAuthStateChanged(function (user) {
    if (user) resolve(user);
  });
}));

authPromises.push(new Promise((resolve,reject)=>{
  firebase.app('app2').auth().onAuthStateChanged(function (user) {
    if (user) resolve(user);
  });
}));

Promise.all(authPromises).then(async(users)=>{
     // ....
    let oldDbInstance = firebase.database();
    let newDbInstance = firebase.database(app2);
});

Уф !!!

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