2017-09-01 59 views
0

我正在使用Firebase数据库插件来Flutter,并试图从“计划”行中获取所有数据。如何使用Firebase数据库插件从参考中获取所有数据

我有这段代码,我已经连接到Firebase服务器。

FirebaseDatabase.instance.reference().child('schedules'); 

我的数据存储这样的: screenshot of Firebase

我想获得数据并将其插入一个列表,所以我可以在以后使用它。

数据必须在Firebase中像这样存储,因为我需要所有这3个值。我还想知道,如果使用Firebase插件,用户将能够在连接到互联网时更新数据(如果是这种情况),甚至在断开连接时也可以看到它。在此之前,我使用httpRequests,但我决定不使用本地存储管理器,只是看看这个插件是否可以为我做到这一点。

如果可以这样做,那么使用扑动从“时间表”中获取所有儿童数据的正确方法是什么? (数据不显示为列表,因此我不能使用FirebaseAnimatedList

回答

1

我会使用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()代替onValueawait它的价值。

+0

我得到这个错误:“_InternalLinkedHashMap”的类型为“时间表” – icazevedo

+0

“名单”的子类型的不是我改变列表到地图固定的错误。得到它并运行! – icazevedo

+0

我编辑了我的答案以使用正确的类型。很高兴它是有帮助的! –

相关问题