【发布时间】:2022-01-05 02:06:09
【问题描述】:
我有一个快照侦听器,用于侦听我使用 Firestore 存储的用户数据的实时变化。听众在那里是因为我正在开发一个聊天功能,因为我需要实时更新用户拥有的聊天 ID 列表,以防添加新的聊天。问题在于当用户断开连接或失去连接时分离侦听器。关于如何在不使用 Real Time DB 中的 onDisconnect 方法的情况下实现此目的的任何建议,因为我无法使用该方法调用 detachListner() 方法。
例子:
这是我的用户文档
{
name:"Brad"
avatar:"https://avatar.com"
chats: [
{
id: 1.,
member_name:"John",
avatar:""
},
{
id: 2.,
member_name:"John",
avatar:""
},
]
}
我在这个文档上有一个活动的快照监听器,
let unsubscribeListener;
export const getChatSnapshot = (user_id, callback) => {
unsubscribeChatListener = onSnapshot(
doc(db, "users", user_id),
(doc) => {
callback(doc.data());
},
(error) => {
console.log(error.message);
}
);
};
当用户断开或关闭页面时,有没有办法断开监听器。 因为使用 onDisconnect 我只有设置、删除...
有没有办法拥有这样的东西。
onDisconnect(userStatusDatabaseRef)
// call unsubscribeListener when user is disconnected.
// like unsubscribeListener()
.set(isOfflineForDatabase)
.then(() => {
set(userStatusDatabaseRef, isOnlineForDatabase);
});
【问题讨论】:
-
"寻求调试帮助的问题('为什么这段代码不工作?')必须包括期望的行为、特定问题或错误和必要的最短代码 在问题本身。没有明确的问题陈述的问题对其他读者没有用处。请参阅:@ 987654321@"
-
我更新了问题
标签: reactjs firebase firebase-realtime-database google-cloud-firestore next.js