颤振+;Firebase-检查用户是否存在
我正在尝试从数据库(Firebase实时数据库)中删除不在或已断开连接的用户。我进行了搜索,我能找到的唯一与此相关的资源是: 该链接是一个web解决方案,我尝试采用该概念,试图使其发挥作用:颤振+;Firebase-检查用户是否存在,firebase,flutter,firebase-realtime-database,Firebase,Flutter,Firebase Realtime Database,我正在尝试从数据库(Firebase实时数据库)中删除不在或已断开连接的用户。我进行了搜索,我能找到的唯一与此相关的资源是: 该链接是一个web解决方案,我尝试采用该概念,试图使其发挥作用: @override void initState() { super.initState(); checkConnection(); } checkConnection() { databaseReference.child('.info/connected').
@override
void initState() {
super.initState();
checkConnection();
}
checkConnection() {
databaseReference.child('.info/connected').onValue.listen((data) {
if (data.snapshot.value == false) {
return;
}
databaseReference
.child('games')
.child(inviteCode)
.child("players")
.child(playerID)
.onDisconnect()
.remove();
});
}
上面的代码似乎不起作用。我试过在iOS模拟器上测试它
我没有使用Firebase验证器。我只是将用户直接添加到实时数据库中,结构如下:
games { inviteCodehere: { players: {-M_AUmwDhQBzFdPL1lsE: {name: saad, score: 0 } } } }
如果有人能指导我,我将不胜感激。有没有一种方法可以定义用户离开多长时间的触发器?如果不是,默认值是多少。谢谢如何测试它是否正常工作 触发它可能需要一些时间。因为你也会搜索一些东西来指示用户离开的时间,也许会对你有所帮助 您可以将
onDisconnect
事件和定期处于活动状态
时间戳组合在一起,每次用户在应用程序中执行某项操作时,您都会将该时间戳保存到数据库中
Flitter的RealtimeDatabase SDK仍处于测试阶段,因此我建议使用处于活动状态的解决方案,如果有人在特定时间内离开,您需要删除一些数据。创建一个云函数,查询早于特定时间的时间戳,并删除与之相关的数据