I am fetching data from firebase and displaying it on screen, initially, firebase data will be empty so, I wanna display the textPress + to add data
. I tried doing it using if conditionsnapshot.data!.docs ==null
but didn't work but it didn't work. Once the users add data to firebase, the stream builder will fetch it and display it and the text won't be there. How to achieve that.
StreamBuilder(
stream: FirebaseFirestore.instance
.collection('lender')
.doc(auth.currentUser!.email)
.collection('borrowers')
.snapshots(),
builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) {
return const Center(
child: CircularProgressIndicator(
backgroundColor: Color(0xff8eacbb),
));
}
if (snapshot.data!.docs ==null) {
return Text(
'Press + to add data',
style: TextStyle(fontSize: 20),
);
} else {
return ListView(
children: snapshot.data!.docs.map((data) {
return BorrowerCard(BorrowerName: data['Name']);
}).toList());
}
},
)
I also tried displaying the text instead of the CircularProgressIndicator
but the text was displayed only for a few seconds, but I want it to display until the user adds data.
For a query without results you'll get a snapshot with an empty array of documents. So to check for that:
if (snapshot.data!.docs.isEmpty) {