Flutter,如果 firebase 数据为空则显示文本
Flutter, display text if firebase data is empty
我正在从 firebase 获取数据并将其显示在屏幕上,最初,firebase 数据将为空,所以我想显示文本Press + to add data
。我尝试使用 if conditionsnapshot.data!.docs ==null
来做,但没有用,但它没有用。用户将数据添加到 firebase 后,流构建器将获取并显示它,文本将不存在。如何实现。
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());
}
},
)
我也尝试显示文本而不是 CircularProgressIndicator
,但文本只显示了几秒钟,但我希望它显示直到用户添加数据。
对于没有结果的查询,您将获得包含空 文档数组的快照。所以要检查一下:
if (snapshot.data!.docs.isEmpty) {
我正在从 firebase 获取数据并将其显示在屏幕上,最初,firebase 数据将为空,所以我想显示文本Press + to add data
。我尝试使用 if conditionsnapshot.data!.docs ==null
来做,但没有用,但它没有用。用户将数据添加到 firebase 后,流构建器将获取并显示它,文本将不存在。如何实现。
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());
}
},
)
我也尝试显示文本而不是 CircularProgressIndicator
,但文本只显示了几秒钟,但我希望它显示直到用户添加数据。
对于没有结果的查询,您将获得包含空 文档数组的快照。所以要检查一下:
if (snapshot.data!.docs.isEmpty) {