【问题标题】:Uploading to Firebase Storage fail上传到 Firebase 存储失败
【发布时间】:2020-11-20 09:24:48
【问题描述】:

在运行下面的代码并调用方法 enableUpload()(按下按钮)后,首先我收到一个错误“列的子项不得包含任何空值。这很奇怪,因为如果文件是空。

其次 - 没有任何东西上传到存储中。

提前谢谢你。

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);
        })
      ],
    );
  }
}

【问题讨论】:

    标签: firebase flutter dart firebase-storage


    【解决方案1】:

    对于您的第一个问题,您将得到null,因为代码在ListView 之前缺少return。所以你应该有:

    Widget enableUpload() {
        if (image == null) return CircularProgressIndicator();
    
        return ListView(
            //Rest of code
        );
      }
    

    【讨论】:

      【解决方案2】:

      ListView 之前使用return

      因为Widget enableUpload() {} 需要return

      【讨论】:

        猜你喜欢
        • 2019-05-07
        • 2019-06-28
        • 1970-01-01
        • 2018-09-02
        • 2018-11-09
        • 2018-10-28
        • 2020-08-16
        • 2021-03-30
        相关资源
        最近更新 更多