上载到Firebase存储失败

上载到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

在运行下面的代码并调用方法enableUpload()之后(按下按钮),首先我得到一个错误“列的子项不能包含任何空值。这很奇怪,因为在文件为空的情况下已经有一个“if”

第二,没有任何东西上传到存储器

提前谢谢你

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