firebase - FirebaseStorage抖动

标签 firebase flutter dart firebase-storage

我是Firebase的新手,我无法弄清楚我应该将什么样的参数传递给putfile中的
以下代码,是否有任何有关flutter的Firebase的教程或适当的文档?

实现代码

import "dart:io";
import "package:flutter/material.dart";
import "package:firebase_storage/firebase_storage.dart";
import "package:flutter/widgets.dart";

class uploadApp extends StatefulWidget{
  @override
  State<StatefulWidget> createState() =>_uploadApp(); 
}

class _uploadApp extends State<uploadApp>{

  var count=1;
  final File file = File("images/ts2.jpg");
  final FirebaseStorage _storage = FirebaseStorage(storageBucket:"gs://console.firebase.google.com/project/baby-name-4ef54/storage/baby-name-4ef54.appspot.com");
  StorageUploadTask _uploadTask;

  void firebasebackend(){
    String filePath = "images/$count.jpg";
    setState(() {
      _uploadTask = _storage.ref().child(filePath).putFile(file);
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title:"upload",
      home:Material(
        child:Container(child:Center(
          child:
           Column(
            children: <Widget>[
              Container(
                width: 300.0,
                height: 300.0,
                decoration: BoxDecoration(
                  borderRadius: BorderRadius.all(Radius.circular(300.0)),
                  image:DecorationImage(
                    image: AssetImage("images/ts2.jpg"),
                    fit: BoxFit.cover
                  )
                ),
              ),
              Center(
                child: RaisedButton(
                  child:Text("Upload"),
                  onPressed: (){
                    firebasebackend();
                    setState(){
                  count=count+1;
                       };     
                  },
                ),
              )
            ],
          ),
        )
      )
      )
    );
  }
}

'package:firebase_storage/src/storage_reference.dart': Failed assertion: line 62 pos 12: 'file.existsSync()': is not true.



将图片直接从文件夹直接上传到Firebase存储,该怎么办?

最佳答案

根据firebase_storage插件的代码:

  /// Asynchronously uploads a file to the currently specified
  /// [StorageReference], with an optional [metadata].
  StorageUploadTask putFile(File file, [StorageMetadata metadata]) {
    assert(file.existsSync());
    final _StorageFileUploadTask task =
        _StorageFileUploadTask._(file, _firebaseStorage, this, metadata);
    task._start();
    return task;
  }

file作为参数,并将类型StorageMetadata的变量作为可选参数。

https://github.com/FirebaseExtended/flutterfire/blob/master/packages/firebase_storage/lib/src/storage_reference.dart#L61

https://api.dart.dev/stable/2.7.0/dart-io/File-class.html

关于firebase - FirebaseStorage抖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59811157/

相关文章:

firebase - flutter firebase google登录以及如何从多个类访问

javascript - 如何从 Cloud Functions 连接 Google Cloud SQL?

android - 错误 :Failed to resolve: com. google.firebase :firebase-core:11. 0.0

dart - 是否有异步错误的全局处理程序?

dart - 在网络调用后完成补全器时,不会调用分配给我的Compler.future对象的回调

ios - 我想从 firebase storage ios swift 获取图像的下载 url

flutter - Flutter StreamBuilder对您的 child 有什么影响

flutter - flutter 如何使客户应用程序抽屉尺寸

dart - flutter 中的下拉按钮不会将值切换到所选值

flutter - 使用 List.length 时 Dart 断言不起作用