我想在不使用streambuilder的情况下读取firebase RTDB。
我可以使用期货或提供者吗?如果是这样,我应该如何处理?
DatabaseReference databaseReference = FirebaseDatabase().reference();
class _BatteryStateReaderState extends State<BatteryStateReader> {
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: databaseReference.child("robot").onValue,
builder: (context, AsyncSnapshot<Event> snap) {
if (!snap.hasData) return Text("loading...");
return Text(snap.data.snapshot.value["battery"].toString());
},
);
}
}
firebase数据库:
{
robot: {
battery : 88
}
}
答案 0 :(得分:0)
要获取Future<DataSnapshot>
而不是事件流,可以在once()
上使用DatabaseReference
调用。请参阅once()
method上的FlutterFire文档以及example of that library中的以下代码片段:
database.reference().child('counter').once().then((DataSnapshot snapshot) {
print('Connected to second database and read ${snapshot.value}');
});