Мне нужно иметь возможность извлекать постоянно меняющиеся данные из моей БД (облачного хранилища) в мое приложение flutter в их собственных группах.
Моя текущая настройка выглядит следующим образом:
DB - Содержимое (коллекция) / Документ (с полями) Одно из этих полей в документе - «Тип», и у меня все будет сгруппировано в определенный тип (например, велосипед, автомобиль, грузовик) на домашней странице
My код выглядит следующим образом:
Widget _buildListItem(BuildContext context, DocumentSnapshot document) {
return Scaffold(
body: ExpansionTile(
title: Text( document['Type'].toString()), //This shows Bike, Car, Truck
children: <Widget>[
Text(
document[ 'FullVN' ].toString( )) // This shows Full Vehicle Name
],
backgroundColor: Colors.white, //This gives the selected expansion contents color
),
backgroundColor: Colors.black12, //This give the expansion title color
);
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text( 'Area Contents' )
),
body: StreamBuilder(
stream: Firestore.instance.collection( 'Contents' ).snapshots( ),
builder: (context, snapshot) {
if (!snapshot.hasData) return const Text( 'Loading...' );
return ListView.builder(
itemExtent: 80.0,
itemCount: snapshot.data.documents.length,
itemBuilder: (context, index) =>
_buildListItem( context, snapshot.data.documents[index] ),
);
}
),
);
}
}
class UnknownRoute extends StatelessWidget {
const UnknownRoute({Key key, this.onUnknownRoute}) : super( key: key );
final RouteFactory onUnknownRoute;
@override
Widget build(BuildContext context) {
return null;
}
}
Что я пробовал:
Я пробовал несколько настроек БД, включая Collection (Contents) / document (Type) / Collection ( Cars, Bikes, Trucks) / Documents (поля, включая необходимые данные)
Я также попытался вызвать подколлекцию / документ для плитки расширения как title: Text (collection / document ['Type']. ToString ()) в надежде на группировку. (не одновременно, конечно)
Текущая реальность: Мои данные возвращаются следующим образом:
Велосипеды - Велосипед 1 Велосипеды - Велосипед 2 Автомобили - Автомобиль 1 и т.д. c. Мои данные там, просто не сгруппированы
Моя цель:
Я бы хотел, чтобы данные отображались как: Велосипеды (заголовок плитки расширения) - Велосипед 1 - Велосипед 2 Машины (другое название отдельного тайла расширения) - Автомобиль 1 - Автомобиль 2 Грузовики (другое название отдельного тайла расширения) и т. д. c .... *** По мере добавления новых «Типов» (например, лодок) они будут заполняться как другие плитка расширения
JSON DB имеет следующий вид:
{
"Collection3": {
"Bikes": {
"Category": "Bikes",
"Items": {
"ID1": {
"BrandName": "Kawasaki",
"Description": "1500 Vulcan Nomad"
},
"ID2": {
"BrandName": "Honda",
"Description": "750 Shadow ACE"
}
}
},
"Cars": {
"Category": "Cars",
"Items": {
"ID1": {
"BrandName": "Dodge",
"Description": "Dodge Challenger"
},
"ID2": {
"BrandName": "Ford",
"Description": "Mustang GT Cobra"
}
}
},
"Trucks": {
"Category": "Trucks",
"Items": {
"ID1": {
"BrandName": "Chevy",
"Description": "Chevy Silvarado"
},
"ID2": {
"BrandName": "Ford",
"Description": "Ford F-150"
}
}
}
}
}