上载到Firebase存储失败
在运行下面的代码并调用方法enableUpload()之后(按下按钮),首先我得到一个错误“列的子项不能包含任何空值。这很奇怪,因为在文件为空的情况下已经有一个“if” 第二,没有任何东西上传到存储器 提前谢谢你上载到Firebase存储失败,firebase,flutter,dart,firebase-storage,Firebase,Flutter,Dart,Firebase Storage,在运行下面的代码并调用方法enableUpload()之后(按下按钮),首先我得到一个错误“列的子项不能包含任何空值。这很奇怪,因为在文件为空的情况下已经有一个“if” 第二,没有任何东西上传到存储器 提前谢谢你 class MyApp extends StatefulWidget { @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State<MyApp&g
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
static File image;
Future getImage() async {
var tempImage = await ImagePicker().getImage(source: ImageSource.gallery);
setState(() {
image = File(tempImage.path);
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(brightness: Brightness.dark),
home: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
image == null ? Text("pick image") : enableUpload(),
RaisedButton(onPressed: getImage),
],
));
}
Widget enableUpload() {
if (image == null) return CircularProgressIndicator();
ListView(
children: <Widget>[
Image.file(image),
RaisedButton(onPressed: () {
final StorageReference ref =
FirebaseStorage.instance.ref().child('images');
ref.putFile(image);
})
],
);
}
}
类MyApp扩展StatefulWidget{
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
静态文件图像;
Future getImage()异步{
var tempImage=await ImagePicker().getImage(源代码:ImageSource.gallery);
设置状态(){
image=文件(tempImage.path);
});
}
@凌驾
小部件构建(构建上下文){
返回材料PP(
主题:主题数据(亮度:亮度.暗),
主页:专栏(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
image==null?文本(“拾取图像”):enableUpload(),
升起按钮(按下:getImage),
],
));
}
Widget enableUpload(){
if(image==null)返回CircularProgressIndicator();
列表视图(
儿童:[
Image.file(图像),
升起按钮(按下时:(){
最终存储参考=
FirebaseStorage.instance.ref().child('images');
ref.putFile(图像);
})
],
);
}
}
对于您的第一个问题,您得到的是null
,因为代码在列表视图
之前缺少一个返回值
Widget enableUpload() {
if (image == null) return CircularProgressIndicator();
return ListView(
//Rest of code
);
}
对于第一个问题,您得到的是null
,因为代码在ListView
之前缺少一个返回值
Widget enableUpload() {
if (image == null) return CircularProgressIndicator();
return ListView(
//Rest of code
);
}
在列表视图
之前使用return
因为Widget enableUpload(){}
需要一个return
在列表视图之前使用return
因为Widget enableUpload(){}
需要return