firebase - Flutter Firebase 实时数据库 StreamBuilder 更新
问题描述
我正在做一个项目,我在其中显示来自 Firebase 实时数据库的数据。我使用 StreamBuilder 从数据库中获取数据。为了触发 StreamBuilder,我使用“_database.child(widget.latestPath).onValue”。但有时我想更改获取其他数据的路径,但是当我更改“widget.latesPath”时,StreamBuilder 不会刷新(仅当我使用热重新加载时)。如何触发 StreamBuilder 刷新新数据库的路径?
解决方案
DatabaseReference databaseRef;
// initState()
databaseRef = _database.child(widget.latestPath);
// build
return StreamBuilder(
stream: databaseRef.onValue,
builder: (context, snapshot) {
// Do something with the data
},
);
// When u want to update new path
setState(() {
databaseRef = _database.child(widget.newPath);;
});
推荐阅读
- java - 合并排序创建内存堆
- arrays - 声明一个 Edge Graphx 类型的空数组
- python - contains_eager 和joinedload 之间的SQLAlchemy 区别
- angular5 - 如何在 p 列 PrimeNG 表中显示组?
- javascript - 在PHP中的单个对象数组中获取多个JSON对象数组
- mysql - 无法从mysql中的三个表中获取不匹配的行
- react-native - 反应原生样式组件
- sockets - 关闭从 TCP 连接读取的 goroutine 而不关闭连接
- angular - 从外部 js 文件更改离子输入的值
- comments - 通过 RapidXML 在 XML 文件中获取注释