我正在使用Firebase数据库插件来Flutter,我正在尝试从“schedule”行获取所有数据。
我有这段代码,而且我已经连接到Firebase服务器了。
FirebaseDatabase.instance.reference().child('schedules');
我的数据存储方式如下: screenshot of Firebase
我想获取数据并将其插入List,以便稍后使用。
数据必须像这样存储在Firebase中,因为当我得到它们时,我需要将所有这三个值放在一起。我还想知道如果使用Firebase插件,用户将能够在连接到互联网时更新数据(如果是这种情况),即使在断开连接时也能看到它。在此之前我使用httpRequests
,但我决定不使用本地存储管理器,只是看看这个插件是否可以为我做这个。
如果它可以做到这一点,那么使用颤动从“日程表”获取所有子数据的正确方法是什么? (数据不会显示为列表,因此我无法使用FirebaseAnimatedList
)
答案 0 :(得分:3)
我会使用StreamBuilder
,以便您的应用中依赖于计划列表的部分会在数据更改时自动重建。
return new StreamBuilder<Event>(
stream: FirebaseDatabase.instance.reference().child('schedules').onValue,
builder: (BuildContext context, AsyncSnapshot<Event> event) {
if (!event.hasData)
return new Center(child: new Text('Loading...'));
Map<String, Map> schedules = event.data.snapshot.value;
// Do something with the list of schedules
},
),
如果由于某种原因您只想获得一次计划列表,请使用once()
而不是onValue
和await
其值。