首页 > 解决方案 > 上传到 Firebase 存储失败

问题描述

在运行下面的代码并调用方法 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);
        })
      ],
    );
  }
}

标签: firebaseflutterdartfirebase-storage

解决方案


对于您的第一个问题,您得到null的是因为代码returnListView. 所以你应该有:

Widget enableUpload() {
    if (image == null) return CircularProgressIndicator();

    return ListView(
        //Rest of code
    );
  }

推荐阅读