gpt4 book ai didi

javascript - Firebase Web 客户端 - 在仍处于连接状态时注销?

转载 作者:行者123 更新时间:2023-11-30 14:01:33 25 4
gpt4 key购买 nike

我有一个 Web 客户端使用在我的服务器上生成的自定义 token 登录 Firebase,即

const firebase = firebase.initializeApp(config);
myAPI.getFirebaseAuthToken().then((token) => {
firebase.auth().setPersistence(firebase.auth.Auth.Persistence.NONE).then(() =>
firebase.auth().signInWithCustomToken(token).then(() => {
const myPres = firebase.database.ref('/presences').push({
id: my_user_id,
time: new Date().getTime(),
// etc
});
myPres.onDisconnect().remove();
});
});

有没有办法让这个客户端在不断开连接的情况下取消身份验证?

我之所以问,是因为我有很多关于 onDisconnect 处理程序的引用,这些处理程序似乎没有被调用。这些引用与用户的存在有关,因此我有一条规则可以防止这些引用被其他任何人写入。所以我开始怀疑用户未通过身份验证,然后在断开连接时写入失败,因为用户没有访问权限。

这可能是什么原因造成的?

最佳答案

进行身份验证是一个 Firebase 身份验证概念。身份验证 session 从用户成功登录开始,直到他们注销或他们的 session 无法再延长(如果他们的帐户被禁用或删除等)。

onDisconnect 是一个 Firebase 实时数据库概念。客户端使用 Web 套接字与服务器通信,服务器使用这些套接字的状态来确定客户端是否仍处于连接状态。

实时数据库客户端绝对有可能失去与服务器的连接,而用户不会失去其身份验证状态。反过来也是可能的:用户可以注销,同时保持与数据库的连接。

关于javascript - Firebase Web 客户端 - 在仍处于连接状态时注销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56229090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com