针对Web javascript中的多个数据库进行初始化时,未通过身份验证的Firebase实时数据库实例之一

时间:2019-05-04 13:53:24

标签: firebase firebase-realtime-database firebase-authentication

在网络中,我的Firebase项目在同一项目/应用中具有两个数据库实例

使用Firebase身份验证成功登录后;

第二个数据库引用似乎未经身份验证,因此数据库访问失败;符合规则中的auth != null

如果我将第二个数据库url替换为config对象,并将默认数据库url放置在config2中,则第二个数据库开始可以正常工作,但已通过身份验证,但是旧数据库由于数据库访问规则auth != null而失败

在没有任何人遇到上述问题的情况下,如何在Web javascript代码中同时使用两个数据库?

初始化正确吗?

enter image description here

预先感谢

1 个答案:

答案 0 :(得分:1)

应该在Firebase网站中正确记录以进行Web身份验证 但不幸的是,它不是针对这个问题的。

因此,firebase auth实例将单独维护,包括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);
});

Ph!