如何使用Firebase Database Plugin从References获取所有数据

时间:2017-09-01 00:32:05

标签: firebase firebase-realtime-database dart flutter

我正在使用Firebase数据库插件来Flutter,我正在尝试从“schedule”行获取所有数据。

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

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

我的数据存储方式如下: screenshot of Firebase

我想获取数据并将其插入List,以便稍后使用。

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

如果它可以做到这一点,那么使用颤动从“日程表”获取所有子数据的正确方法是什么? (数据不会显示为列表,因此我无法使用FirebaseAnimatedList

1 个答案:

答案 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()而不是onValueawait其值。