String _username = ""; String _age = ""; final TextEditingController _usernameController = new TextEditingController(); final TextEditingController _ageController = new TextEditingController(); Widget build(BuildContext context){ return Scaffold( body: Center( child: Column( children [ TextField( controller: _usernameController, decoration: const InputDecoration( label: Text('Input Username'), ) ), SizedBox(height: 10), ElevatedButton( onPressed: sendDatatoFirestore, child: Text('Submit'); ), SizedBox(height: 10), TextField( controller: _ageController, decoration: const InputDecoration( label: Text('Input Age'), ) ), ] ) ), ) } void sendDatatoFirestore(){ _username = _usernameController.text; _age = _ageController.text; int age; age = try.parseInt(_age); _firestore.collection("users").add({ 'username': _username, 'age': age, 'createdAt': FieldValue.serverTimestamp(), }).then((docRef){ ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text("Data sent successfully! ID: ${docRef.id}")), ); }).catchError((error){ }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text("Firestore Snapshot Example")), body: StreamBuilder( stream: FirebaseFirestore.instance.collection('users').snapshots(), builder: (context, snapshot) { if (!snapshot.hasData) { return Center(child: CircularProgressIndicator()); // Show loading } var users = snapshot.data!.docs; return ListView.builder( itemCount: users.length, itemBuilder: (context, index) { var user = users[index]; return ListTile( title: Text(user['name']), subtitle: Text("Age: ${user['age']}"), ); }, ); }, ), ); }