firebase - 如何在 Flutter 中取消 StreamBuilder 的订阅?
问题描述
我目前面临一个问题,即我的整个HomeScreen
页面都依赖于StreamBuilder
它从 Firestore 接收的数据。
一切正常,但是当我单击退出时,出现此错误:
调用者没有执行指定操作的权限。
这是我的 Firestore 安全规则:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
我做了一些研究,发现原因可能是我在按注销时没有取消订阅流。这是我的流生成器代码:
late Stream<QuerySnapshot<Map<String, dynamic>>> bookSnapshot =
firestore.collection('books').snapshots();
StreamBuilder<QuerySnapshot>(
stream: bookSnapshot,
builder: (context, snapshot) {
...
}
),
我对这个概念相当陌生,我真的需要关于如何取消订阅流的帮助。
非常感谢任何帮助,谢谢!
解决方案
推荐阅读
- c - 如何在c中将字符串添加到链表?
- r - (Rcpp, armadillo) 将 arma::vec 转换为 arma::mat
- jquery - SharePoint REST API:复选框组和 GET/POST 的所有值
- php - 从 PHP 7.0 运行 Bash 命令
- swiftui - SwiftUI:在 ScrollView 中居中内容
- c++ - ODBC 中 SQL Server 存储过程的问题绑定输出参数
- git - 将两个 git 存储库合并到一个存储库中,而对原始存储库继续进行更改
- typescript - typescript debouncetime(2000) 仍然会立即触发搜索
- c++ - 代码在 Linux 上编译和运行,在 Windows 上因堆损坏而崩溃
- netlogo - 在每次迭代中在 Netlogo 中制作不同的情侣