ios - StreamProvider - Flutter - 如何在用户登录时更新流
问题描述
我正在构建一个具有以下结构的应用程序,以获取用户添加/执行的交易列表。
在 main.dart 的 Material 应用程序上方,我有一个 streamProvider,它依赖于 Firebase UID(如代码片段所示)。
预期行为:每当用户登录时,他们都应该获得他们的 UID 的交易流。
实际行为:每当用户登录时,即使他们已经登录,他们仍然会看到“someID”集合中的事务。
var dbTransactionRef = db
.collection('users')
.doc(_auth.currentUser == null ? 'someId' : _auth.currentUser.uid)
.collection('transactions');
StreamProvider<List<T.Transaction>>.value(
initialData: [T.Transaction()],
value: dbTransactionRef.snapshots().map((snapshot) => snapshot.docs
.map((document) => T.Transaction.fromJSON(document.data()))
.toList()),
),
似乎流在用户登录时没有更新。请你能帮我更新代码以获得预期的行为吗?谢谢!
解决方案
推荐阅读
- reactjs - 托管在 apache 上时 express-session 不设置 cookie
- javafx - 类 Circle javafx.scene.shape.* 中的构造函数 Circle 存在问题;
- macos - 如何在 MacOS 上使用 Docker 桌面监听主机本地主机
- sql - PostgreSQL:在连接表上创建唯一约束(多表约束)
- outlook - Opencart Outlook SMTP
- python - 按原样对数据帧行进行排序,没有索引问题
- c# - Nullable Annotation 到底是什么意思?
- python - 如何在 discord.py 中使用 Bot top role position 命令?
- python - 如何在 Python 中恢复中断的 FTP 上传
- python - 使用 RStudio 时导入 python 自定义模块