【发布时间】:2021-09-04 15:32:31
【问题描述】:
有人可以帮我吗,我有实时 Firebase 图像的名字簿列表,每本书都有一个整数 ID,所以当我尝试从 firebase 获取数据时,它会给我一个没有任何数据的白屏。 但是当我在终端中打印出获取的结果时,我看到了结果,我检查了所有教程,但所有教程都使用 firebase 中的随机 id。 这是我的代码:
class DetailsList extends StatefulWidget {
final List<DetailScreen> listSection;
final String bName;
const DetailsList({ this.listSection,@required this.bName}) ;
@override
_DetailsListState createState() => _DetailsListState();
}
class _DetailsListState extends State<DetailsList> {
@override
Widget build(BuildContext context) {
//var controller = IndexedScrollController();
Size size = MediaQuery.of(context).size;
return Expanded(
//flex: 4,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.max,
children: [
FutureBuilder(
future:snapvalue(widget.bName),
builder: (context,snapshot){
if(snapshot.hasData)
{print(snapshot.connectionState);
print(snapshot.hasData);
return CircularProgressIndicator();
}else return ListView.builder(
itemCount: 10,
itemBuilder: (context,index){
print(snapshot.data[index].title);
//return SectionCard(snapshot: snapshot.data[index]);
// return Flexible(
// child: Card(child: ListTile(
// leading: ImageCard(imageSource: snapshot.data.image.toString(),),
// title: snapshot.data[index].title,
// subtitle: snapshot.data[index].pdf,
// ),),
// );
});
})
],
),
);
}
以及从 Firebase 代码中获取数据:
Future snapvalue(String child2) {
List<String>detailslist;
DatabaseReference data = dbRef.child(child2);
data.once().then((DataSnapshot snap) {
var key= snap.key.toString();
var value= snap.value;
if (value != null) {
print("key"+key);
print("value"+snap.value.toString());
return value;
}else print("No Data");
});
}
【问题讨论】:
标签: flutter listview firebase-realtime-database