2017-09-01 95 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

我編輯了我的答案以使用正確的類型。很高興它是有幫助的! –

相關問題