Я загружаю данные из Cloud Firestore из Firebase. В операторе печати в функции loadAssignments () загруженные данные отображаются правильно. Но когда я покажу данные в виджете Text с виджетом FutureBuilder, он не покажет данные, и я не знаю почему. Может ли кто-нибудь помочь мне?
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
class AssignmentPage extends StatefulWidget {
@override
_AssignmentPageState createState() => _AssignmentPageState();
}
class _AssignmentPageState extends State<AssignmentPage> {
Future _loadAssignments;
QuerySnapshot _assignments;
@override
void initState() {
super.initState();
_loadAssignments = loadAssignments();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Bühlmaier App'),
centerTitle: true,
automaticallyImplyLeading: false,
),
body: FutureBuilder(
future: _loadAssignments,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return ListView.builder(
itemCount: _assignments.documents.length,
itemBuilder: (context, index) {
return Card(
child: ListTile(
leading: Text('${_assignments.documents[index].data['Name'].toString()}'),
),
);
});
} else if (snapshot.connectionState == ConnectionState.waiting) {
return Center(child: CircularProgressIndicator());
}
return Center(child: CircularProgressIndicator());
},
),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
onPressed: () => toPage(NewAssignmentPage()),
),
);
}
Future<void> loadAssignments() async {
_assignments = await Firestore.instance.collection('assignments').getDocuments();
for (int i = 0; i < _assignments.documents.length; i++) {
print('DATEN: ' + _assignments.documents[i].data['Name'].toString());
}
setState(() {});
}
}
Когда я добавляю следующий код:
else if (snapshot.connectionState == ConnectionState.waiting) {
return Text("No data");
}
, он работает, но когда я редактирую код на:
else if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
}
данные не загружаются, и CircularProgressIndicator () не перемещается.