当前位置: 首页 > 知识库问答 >
问题:

Flutter firebase存储插件花费大量时间上传文件

那存
2023-03-14

我正在使用Flutter开发一个Android应用程序。在我的应用程序中,有一个功能,用户可以从他们的设备上传图片。为了存储图像,我使用firebase云存储&下面是我用于将文件上传到firebase云存储的部分代码。

String fileName = "${this.userDetails['id']}_${uuid.v1()}";
String fileExtension = p.extension(_imageFile.path);
String newFileName = p.setExtension(fileName, fileExtension);

print("STEP 1: New filename of image - 111: $newFileName");

final StorageReference ref = FirebaseStorage.instance.ref().child("images/users/original/$newFileName");
final StorageUploadTask uploadTask = ref.put(
            _imageFile, const StorageMetadata(contentLanguage: "en")
        );

print("STEP 2: Image file uploaded - 222");

final Uri downloadUrl = (await uploadTask.future).downloadUrl;
print('STEP 3: downloadUrl data received - 333 : $downloadUrl');

final http.Response downloadData = await http.get(downloadUrl);
print('STEP 4: Download data received - 444 : ${downloadData.body}');

这里有3个相关的flutter插件,我正在使用,上面的帮助代码上传文件。

import 'package:uuid/uuid.dart';
import 'package:path/path.dart' as p;
import 'package:firebase_storage/firebase_storage.dart';

一切正常。不过,文件上传要花很多时间。几乎需要40-50秒才能完成步骤3(打印('step 3:downloadUrl数据接收-333:$downloadUrl');)。有时也是1-半分钟。关于我的网速,它有几乎80Mbps上传和下载。我的平均。上载图像大小为100KB。

需要一些帮助。出了什么问题。

从我的Android Studio日志中添加一个截图(文件大小为2.8MB)-

I/flutter ( 4451): cliked on image upload button
I/flutter ( 4451): Loading animation started
I/flutter ( 4451): 2018-06-06 23:15:30.327722 - STEP 1: New file name got - 111: KyvU5PFfLRPxYFwHaiKHuywilMV2_679b9ee0-4800-11e8-fe1b-7f6c98d5147d.png
I/flutter ( 4451): 2018-06-06 23:15:30.329420 - STEP 2: Image file uploaded - 222
W/DynamiteModule( 4451): Local module descriptor class for com.google.android.gms.firebasestorage not found.
W/zygote64( 4451): Unsupported class loader
W/zygote64( 4451): Skipping duplicate class check due to unsupported classloader
I/DynamiteModule( 4451): Considering local module com.google.android.gms.firebasestorage:0 and remote module com.google.android.gms.firebasestorage:6
I/DynamiteModule( 4451): Selected remote version of com.google.android.gms.firebasestorage, version >= 6
W/zygote64( 4451): Unsupported class loader
W/zygote64( 4451): Skipping duplicate class check due to unsupported classloader
I/FlutterActivityDelegate( 4451): onResume setting current activity to this
D/UploadTask( 4451): Increasing chunk size to 524288
D/UploadTask( 4451): Increasing chunk size to 1048576
D/UploadTask( 4451): Increasing chunk size to 2097152
I/flutter ( 4451): 2018-06-06 23:17:43.445542 - STEP 3: downloadUrl image data - 333 : 
I/flutter ( 4451): 2018-06-06 23:17:46.757227 - STEP 4: Download data - 444 : ÿØÿá1(Exif

注意:这可能是一个插件问题。所以,在Github上发了一个问题

链接:https://github.com/flutter/flutter/issues/18325

共有1个答案

邓季
2023-03-14

我最近尝试使用firebase_storage:^7.0.0,上载一个1MB的映像只花了几秒钟。

您是否尝试了firebase_storage插件的最新版本,并查看是否仍然存在相同的行为?鉴于所提供的日志,除了上传图像所消耗的时间之外,似乎没有任何问题。您也可以尝试通过不同的网络(即移动)上传文件,看看是否有什么不同。

 类似资料:
  • 问题内容: 我有一个连接到Android设备的外部大容量存储设备。在根目录中,有几个.BIN文件需要读取到我的应用程序中。我能够连接到设备并使用UsbDeviceConnection接收USB许可。 连接后,我可以看到我有一个带有2个批量传输端点的大容量存储接口(一进一出)。 当使用usbConnection.bulkTransfer时,我收到-1返回和一个空缓冲区。因此,我在接收数据时遇到了麻烦

  • > 我有两个Nexus存储库 我在C:\users\login.m2中有两个settings.xml文件: 发布开发人员快照 在C:\apache-maven-3.2.3\conf: [信息]下载:http://30.30.20.40:8085/nexus/content/repositories/releases/org/apache/httpcomponents/project/4.1.1/p

  • 我试图将大文件(4Gb)上传到Azure Blob存储,但失败了。根据本文(https://docs.microsoft.com/en-us/azure/storage/storage-dotnet-how-to-use-blobs),这是我的代码: 但我犯了这个错误 信息:流太长了<来源:系统。私有的CoreLib StackTrace:at系统。伊奥。记忆之流。在Microsoft上写入(字节

  • 什么是 Firebase 存储上传文件大小限制?我在网站上找不到该信息。

  • 问题内容: 假设我正在测试Java服务器应用程序。我知道需要多少时间才能完成测试。现在,我想知道该测试期间在GC上花费了多少。我该怎么做? 问题答案: 最简单的方法是在启动JVM时使用和选项。我认为它可以打印出垃圾收集需要多长时间。 http://www.oracle.com/technetwork/java/javase/tech/vmoptions- jsp-140102.html

  • 问题内容: 我想衡量用户在网页上花费的时间(以秒为单位,以整数为单位,以浮点数表示,以分钟为单位)。我知道有一个卸载事件,当他们离开页面时,我可以触发该事件。但是如何获得他们已经在那里度过的时间呢? 问题答案: 如果您使用Google Analytics(分析),他们会提供此统计信息,尽管我不确定他们是如何获得的。 如果要自己滚动,则需要将一些AJAX请求发送到服务器进行日志记录。 jQuery有