[英]How can i dispose or close a listen function from Firestore?
撲
我有這個監聽功能到stful
,我需要在按下后退按鈕時關閉它
class Test extends StatefulWidget {
const Test({Key key}) : super(key: key);
@override
_TestState createState() => _TestState();
}
class _TestState extends State<Test> {
handleDelete(){
FirebaseFirestore.instance.collection("handleCountM").limit(1).snapshots().listen((value) {
value.docs.forEach((element) {
element.reference.delete();
});
});
}
@override
Widget build(BuildContext context) {
return Container();
}
}
我不知道我怎么能阻止它進入dispose()
listen()
方法返回一個StreamSubscription
,它有一個cancel()
訂閱的cancel()
方法。 調用此方法后,訂閱不再接收事件。
看看這篇文章,它展示了如何:
StreamSubscription
對象存儲在狀態中以便能夠在處理時取消訂閱。dispose()
調用cancel()
方法Stream<QuerySnapshot<Map<String, dynamic>>> myStream = FirebaseFirestore.instance.collection("handleCountM").limit(1).snapshots();
late StreamSubscription<QuerySnapshot<Map<String, dynamic>>> streamSubscription;
void handleDelete() {
streamSubscription = myStream.listen((value) {
value.docs.forEach((element) {
element.reference.delete();
});
});
}
@override
void dispose() {
streamSubscription.cancel(); //Cancel your subscription here.
super.dispose();
}
您的另一種選擇是使用流構建器,它會為您處理訂閱和終止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.