Flutter将文本文件上传到存储

时间:2020-08-12 09:18:47

标签: firebase flutter dart

我正在尝试创建一个.txt文件,其中包含TextFieldController中的信息。

class FileUtils {
  static Future<String> get getFilePath async {
    final directory = await getApplicationDocumentsDirectory();
    return directory.path;
  }

  static Future<File> get getFile async {
    final path = await getFilePath;
    return File('$path/myfile.txt');
  }

  static Future<File> saveToFile(String data) async {
    final file = await getFile;
    final neww = file.writeAsString(data);
    return file.writeAsString(data);
  }

  static Future<String> readFromFile() async {
    try {
      final file = await getFile;
      String fileContents = await file.readAsString();
      return fileContents;
    } catch (e) {
      return "";
    }
  }
}

因此,在上面的代码中,我试图创建一个将存储在Firebase Storage中的.txt文件。在下面的代码中,用户将输入信息,然后使用FileUtils的saveToFile函数将该信息保存到文本文件中。

_dialog(BuildContext context) async {
  await Future.delayed(Duration(seconds: 1));
  return showDialog(
      context: context,
      builder: (context) {
        return AlertDialog(
          title: Text('Please write something'),
          content: TextField(
            controller: _textFieldController,
            decoration: InputDecoration(hintText: ""),
            maxLines: 5,
            maxLength: 250,
          ),
          actions: <Widget>[
            new FlatButton(
              child: new Text('Cancel'),
              onPressed: () {
                Navigator.of(context).pop();
              },
            ),
            new FlatButton(
              child: new Text('Submit'),
              onPressed: () {
                FileUtils.saveToFile(_textFieldController.text);
                Navigator.of(context).pop();
              },
            )
          ],
        );
      });
}

我尝试使用以下方式存储文本文件:

final test = FileUtils.getFile;
FirebaseStorage.instance.ref().child('test').putFile(test).onComplete;

但是我失败了。因此,我需要将.txt文件存储到Firebase的帮助。我很困惑,所以我希望我能解释我的问题。

0 个答案:

没有答案