【发布时间】:2017-02-13 07:08:57
【问题描述】:
1) 用户 X 访问了我的网页,并且 X 已正确验证并能够通过网络浏览器写入我的 firebase 数据库。
2) 用户 Y 然后访问我的网页,并且 Y 已通过身份验证并能够通过网络浏览器写入我的 firebase 数据库。 但是,在用户 Y 通过身份验证后,用户 X 开始在浏览器中收到“Permission Denied”控制台日志消息,并且无法再写入 firebase。
为什么当 Y 被认证时 X 会失去认证权限?
这是 Node.js 服务器代码:
token = Fb.auth().createCustomToken(uid, params);
...
response.render('pages/xyz', {settings:settings, token:token, ...});
这里是Node.js传递给浏览器的html/js:
firebase.initializeApp(<%- JSON.stringify(settings);%>);
db = firebase.database();
function initApp() {
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
//do nothing
}
});
}
$('document').ready(function(){
initApp();
firebase.auth().signInWithCustomToken('<%=token%>').catch(function(error) {
// Handle Errors here.
});
});
【问题讨论】:
-
您是否尝试在浏览器的同一选项卡中验证多个用户?那是行不通的。 Firebase 身份验证每个应用最多有一个登录用户。
-
啊,是的。我通过在同一个浏览器中打开两个不同的浏览器选项卡(针对两个不同的用户)来测试它。
-
那行不通。如果您想在本地进行测试,请尝试不同的浏览器,或常规选项卡 + 隐身窗口。
-
谢谢。如果你把它写成下面的答案,我会把它标记为正确的。
标签: javascript node.js firebase firebase-realtime-database firebase-authentication