【发布时间】:2021-12-10 05:20:56
【问题描述】:
我正在尝试从 firestore 数据库中获取数据,并且这段代码运行良好。但是现在它不起作用,我收到了这个错误
在 null 上调用了 getter 'length'。
接收者:空
尝试调用:长度"
这是出现错误的代码。
class MiddleHelpers extends ChangeNotifier {
Widget datafav(BuildContext context, String collection) {
return Container(
height: 280.0,
child: FutureBuilder(
future: Provider.of<ManageData>(context, listen: false)
.fetchData(collection),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return const Center(
child: CircularProgressIndicator(),
);
} else {
return ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: snapshot.data.length,
itemBuilder: (BuildContext context, int index) {
return GestureDetector(
onTap: () {
Navigator.push(
context,
PageTransition(
child: DetailScreen(
queryDocumentSnapshot: snapshot.data[index]),
type: PageTransitionType.bottomToTop),
);
},
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
decoration: const BoxDecoration(
borderRadius: BorderRadius.all(
Radius.circular(20.0),
),
color: Colors.white,
boxShadow: [
BoxShadow(
color: Colors.black26,
blurRadius: 5,
// spreadRadius: 3,
offset: Offset(3, 3),
),
],
),
),
),
);
},
);
}
},
),
);
}
}
获取数据方法
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/cupertino.dart';
class ManageData extends ChangeNotifier {
FirebaseFirestore firebaseFirestore = FirebaseFirestore.instance;
Future fetchData(String collection) async {
QuerySnapshot querySnapshot =
await firebaseFirestore.collection(collection).get();
return querySnapshot.docs;
}
}
设备错误
【问题讨论】:
-
检查
!snapshot.hasData也在您的微调器检查中。
标签: flutter flutter-futurebuilder