Created
March 2, 2022 17:05
-
-
Save romanejaquez/a4299ce88d233658c8a23042e4fb1c8e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
import 'package:intl/intl.dart' show toBeginningOfSentenceCase; | |
import 'package:google_fonts/google_fonts.dart'; | |
import 'package:firebase_core/firebase_core.dart'; | |
import 'package:cloud_firestore/cloud_firestore.dart'; | |
const Color darkBlue = Color.fromARGB(255, 18, 32, 47); | |
void main() async { | |
WidgetsFlutterBinding.ensureInitialized(); | |
await Firebase.initializeApp( | |
options: const FirebaseOptions( | |
apiKey: "AIzaSyDOdBmVvI30Jg49oup4gsJMZMjTPhHOloQ", | |
authDomain: "fullstack-labs.firebaseapp.com", | |
databaseURL: "https://fullstack-labs.firebaseio.com", | |
projectId: "fullstack-labs", | |
storageBucket: "fullstack-labs.appspot.com", | |
messagingSenderId: "251418261584", | |
appId: "1:251418261584:web:2e01357a093d27476b7955" | |
) | |
); | |
runApp(MyApp()); | |
} | |
class MyApp extends StatelessWidget { | |
@override | |
Widget build(BuildContext context) { | |
return MaterialApp( | |
theme: ThemeData.dark().copyWith( | |
scaffoldBackgroundColor: darkBlue, | |
), | |
debugShowCheckedModeBanner: false, | |
home: Scaffold( | |
body: Center( | |
child: MyWidget() | |
), | |
), | |
); | |
} | |
} | |
class MyWidget extends StatelessWidget { | |
@override | |
Widget build(BuildContext context) { | |
// it enable scrolling on small device | |
return Center( | |
child: FutureBuilder( | |
future: FirebaseFirestore.instance.collection('orders').get(), | |
builder: (context, snapshot) { | |
if (snapshot.hasData) { | |
List<QueryDocumentSnapshot> docs = (snapshot.data! as QuerySnapshot).docs; | |
return ListView.builder( | |
itemCount: docs.length, | |
itemBuilder: (context, index) { | |
var data = docs[index].data() as Map<String, dynamic>; | |
var dataOrders = data['orders'] as List<dynamic>; | |
var mappedDataOrders = dataOrders.map((o) => (o as Map<String, dynamic>)).toList(); | |
return Container( | |
padding: const EdgeInsets.all(10), | |
child: Column( | |
mainAxisAlignment: MainAxisAlignment.center, | |
children: [ | |
Text(data['orderId'].toString(), style: TextStyle(fontSize: 30)), | |
const SizedBox(height: 20), | |
...List.generate( | |
mappedDataOrders.length, | |
(index) { | |
var order = mappedDataOrders[index] as Map<String, dynamic>; | |
return Text(order['title']); | |
} | |
) | |
] | |
) | |
); | |
} | |
); | |
} | |
return const Center( | |
child: SizedBox( | |
width: 100, | |
height: 100, | |
child: CircularProgressIndicator( | |
valueColor: AlwaysStoppedAnimation<Color>(Colors.black), | |
strokeWidth: 5 | |
) | |
) | |
); | |
} | |
), | |
); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment