我目前面临一个问题,即我的整个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) {
...
}
),
我对这个概念相当陌生,我真的需要关于如何取消订阅流的帮助。
非常感谢任何帮助,谢谢!