Flutter 如何在身份验证注销前取消Streambuilder?

Flutter 如何在身份验证注销前取消Streambuilder?,flutter,google-cloud-firestore,firebase-authentication,Flutter,Google Cloud Firestore,Firebase Authentication,我正在使用Streambuilder使用firestore中的数据填充Listview.builder。一切正常,但如果用户决定突然注销(auth.signOut),他将重定向到登录页面,但我在控制台中收到firestore警告,说由于权限不足,侦听查询失败,这是可以理解的,因为db上的安全规则只允许对经过身份验证的用户进行读/写。我知道Streambuilder所在的小部件树被破坏时会自动关闭,但如何在调用auth.signOut之前关闭它以防止出现此警告?或者我可以忽略这个警告吗?欣赏任何灯

我正在使用Streambuilder使用firestore中的数据填充Listview.builder。一切正常,但如果用户决定突然注销(auth.signOut),他将重定向到登录页面,但我在控制台中收到firestore警告,说由于权限不足,侦听查询失败,这是可以理解的,因为db上的安全规则只允许对经过身份验证的用户进行读/写。我知道Streambuilder所在的小部件树被破坏时会自动关闭,但如何在调用auth.signOut之前关闭它以防止出现此警告?或者我可以忽略这个警告吗?欣赏任何灯光。

你可以忽略它。正如您所提到的,这是由于身份验证集的缘故,所以在控制台中显示此警告是没有问题的

但是,如果您想关闭它,在调用
auth.signOut
之前,根据社区中的另一个问题,您可以在方法注销之前将流设置为null。使用的示例如下所示:

setState(() {
  _messageStream = null;
});
您可以尝试使用类似于上述代码的方法将流设置为null,但只是为了强调,忽略警告没有问题

如果这些信息对你有帮助,请告诉我