import 'package:flutter/material.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:backendless_sdk/backendless_sdk.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); runApp(MaterialApp( home: App(), )); } class App extends StatelessWidget { final Future _initialization = Firebase.initializeApp(); @override Widget build(BuildContext context) { return FutureBuilder( // Initialize FlutterFire: future: _initialization, builder: (context, snapshot) { if (snapshot.hasError) { return Text(snapshot.error.toString()); } if (snapshot.connectionState == ConnectionState.done) { return _HomeState(); } return CircularProgressIndicator(); }, ); } } class _HomeState extends StatefulWidget { @override __HomeStateState createState() => __HomeStateState(); } class __HomeStateState extends State<_HomeState> { @override void initState() { super.initState(); // uncomment the line below if your application is hosted in the European hosting zone of Backendless: Backendless.setUrl("https://eu-api.backendless.com"); Backendless.initApp( "EF7D3338-C2D8-3CB9-FF63-6455EEC5B800", "203C0D06-200E-4C82-9E27-EC6327EF52D3", "8B454563-3AE9-41A9-A4E0-658001D6B2AB"); Backendless.initWebApp("EF7D3338-C2D8-3CB9-FF63-6455EEC5B800", "E1D75CDD-A81C-4BCA-9962-F98B9F2ED1BC"); } final firestoreInstance = FirebaseFirestore.instance; @override Widget build(BuildContext context) { return Scaffold( body: SafeArea( child: Column( children: [ StreamBuilder( stream: firestoreInstance .collection("users") .orderBy("createdTime") .snapshots(), builder: (context, snapshot) { if (!snapshot.hasData) return LinearProgressIndicator(); return Expanded(child: _buildList(snapshot.data)); }, ), ], )), ); } void onPressedNegativ(String docID) async { Set adresses = ["mark@backendless.com"].toSet(); EmailEnvelope envelope = EmailEnvelope()..to = adresses; Backendless.messaging .sendEmailFromTemplate("DRK Negativ", envelope) .then((response) { print("Email sended"); }); String userEmail; String userName; firestoreInstance .collection("users") .doc(docID) .update({"ergebnis": "Erhalten"}); DocumentSnapshot variable = await firestoreInstance.collection("users").doc(docID).get(); userEmail = variable['email']; userName = variable['nachname']; print(userEmail + userName); } Widget _buildList(QuerySnapshot snapshot) { return ListView.separated( padding: EdgeInsets.all(20), separatorBuilder: (context, index) => Container( height: 10, ), itemCount: snapshot.docs.length, itemBuilder: (context, index) { final doc = snapshot.docs[index]; return ListTile( key: Key(doc.id), leading: (doc["ergebnis"] == "Ausstehend") ? Icon(Icons.schedule) : Icon(Icons.check), title: Text( doc["nachname"] + ", " + doc["vorname"], ), subtitle: Text(doc["adresse"] + " / " + doc["Geburtsdatum"] + " / " + doc["telefon"]), trailing: Wrap( spacing: 12, children: [ OutlineButton.icon( borderSide: BorderSide(color: Colors.red), onPressed: () {}, icon: Icon( Icons.cancel_rounded, color: Colors.red, ), label: Text( "Test positiv", style: TextStyle(color: Colors.red), ), shape: RoundedRectangleBorder( borderRadius: new BorderRadius.circular(30.0)), ), OutlineButton.icon( borderSide: BorderSide(color: Colors.green), onPressed: () => onPressedNegativ(doc.id), icon: Icon( Icons.check_box_rounded, color: Colors.green, ), label: Text( "Test negativ", style: TextStyle(color: Colors.green), ), shape: RoundedRectangleBorder( borderRadius: new BorderRadius.circular(30.0)), ) ], ), ); }, ); } }