【问题标题】:Flutter web: Store a CSV file to Firebase Storage without uploading it from the computerFlutter web:将 CSV 文件存储到 Firebase 存储,无需从计算机上传
【发布时间】:2021-08-05 13:51:44
【问题描述】:

我正在尝试将 Flutter 移动应用程序转换为 Flutter Web 应用程序。在 Flutter 应用程序中我生成了一个 csv 文件,将其存储在手机内存中,然后将其上传到 Firebase 存储,这里是相关代码的 sn-p:

//relevant imports:
import 'dart:io';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:path_provider/path_provider.dart' as path_provider;
import 'package:csv/csv.dart';

//relevant code
Future writeCSV(..) async{
    final _storage = FirebaseStorage.instance;
    List<List> names = [];
    //...
    //Store data in the list 'names'
    //....
    final directory = await path_provider.getExternalStorageDirectory();
    File file = await File('${directory.path}/data.csv').create();

    String csv = const ListToCsvConverter().convert(names);
    await file.writeAsString(csv);
    var snapshot = await _storage.ref().child('data2.csv').putFile(file).onComplete;
}

如何在 Flutter web 中实现这一点?当我试图搜索解决方案时,我只能找到您从计算机上传文件的示例,但我想直接生成文件然后将其上传到 Firebase 存储

【问题讨论】:

    标签: flutter flutter-web


    【解决方案1】:

    我可以通过以下方式做到这一点:

    import 'dart:html';
    import 'package:firebase/firebase.dart' as fb;
    //..
    //..
    String data = 'name,city,age\nSimon,London,30\nJohn,New York,40';
    final path = 'data.csv';
    var file_contents = <String>[data];
    var blob = Blob(file_contents, 'text/csv', 'native');
    fb.storage().refFromURL('gs://<name>.appspot.com/')
    .child(path).put(blob);
    

    【讨论】:

      猜你喜欢
      • 2020-04-30
      • 2021-09-19
      • 2021-07-28
      • 2021-08-11
      • 2020-11-20
      • 2021-07-03
      • 2019-04-26
      • 2018-10-13
      • 2019-02-10
      相关资源
      最近更新 更多