Fire Storage for Firebase(以前称为Firebase存储)通过处理网络中断并提供直观的授权模型,为开发人员提供了强大,安全的Firebase SDK上传和下载。 Firebase存储由Google云端存储提供支持,允许您从原型扩展到生产。
如何将图像上传到 Firebase 存储并等待 URL 返回后再继续
我正在尝试创建一个“创建帖子”表单,用户可以在其中输入文本以及输入图像。 上传图片() { const 文件 = document.querySelector('#imagesInput').files; 文件。
将图像从 React Native 上传到 Firebase 存储
我使用React Native Image Picker Library从手机图库中获取图像,这些图像采用base64格式,当我尝试将它们上传到firebase存储时,它们不显示,我已经尝试过了
如何使用 Cloud Functions 迭代 Firebase 存储
我尝试使用 Firebase Cloud Functions 将 Google Cloud Vision 应用到我的 Firebase 云存储中的文件。 存储结构为bucket>images>userID>image。有多种用途...
Firebase Storage 上出现消息“无法上传文件,因为已超出此项目的配额”
几个小时前,我在 Firebase Storage 上上传了一个 80 MB 的视频,现在我收到一条消息“无法上传文件,因为该项目的配额已被超出”,我无法
Vue Firebase Storage 删除图像方法出现用户无权访问错误
这是我的删除方法: 异步删除头像(路径){ console.log({ 路径 }); 尝试 { const imageRef = ref(存储, 路径); console.log({ imageRef }); 等待删除Ob...
在 React Native Expo 中不使用 blob 将图像上传到 Firebase 存储
我目前正在尝试将文件上传到 firebase 存储,而不使用 blob 或尝试找到解决问题的另一种解决方法。 在我的托管 React Native 项目中,我正在使用 expo-image-pick...
转码器 API 无法通过 Firebase Cloud Functions 运行
我在 Unity 应用程序中使用 Firebase。用户可以将视频上传到 Firebase Storage(运行良好),然后我在 Firebase Cloud Functions 中触发以对视频进行转码(通过 Google Cloud Platform
我正在尝试构建一个从 Firebase 存储桶上传和检索图像的应用程序。 问题是当我尝试上传文件时,它在 IOS 模拟器的文件选择器中显示以下内容...
Ionic 7(角度),电容器,将图像保存到 Firebase 存储时出错
在我的 Ionic 7 应用程序中,我尝试使用 Capacitor Camera 插件将图像保存到 Firebase 存储中。 当图片是从网络浏览器获取时,效果很好。然而,拍照时...
如何在 Firebase 托管上将 MP3 转换为 M3U8?
我目前正在开发一个流媒体音乐应用程序,使用 Angular 并将其托管在 Firebase 托管上。该应用程序的功能涉及将 MP3 文件放置在 Firebase 存储中。正在关注...
将文件从 Firebase Cloud Functions 上传到云存储
文档太复杂,我无法理解。它演示了如何将文件从 Cloud Storage 下载到 Cloud Functions、操作该文件,然后将新文件上传到 Cloud Storage。我...
当尝试从 URL 获取自定义 ImageProvider 内的图像数据时,出现错误: ClientException:XMLHttpRequest 错误。,uri=https:///api/v1/images//thumbnail-s...
我如何在flutter中将多个图像上传到firebase并获取它们的所有下载网址
这是我的上传功能。我想要的输出是所有网址的列表,但它返回一个空列表。我尝试了不同的建议解决方案,但都失败了。 未来 这是我的上传功能。我想要的输出是所有网址的列表,但它返回一个空列表。我尝试了不同的建议解决方案,但都失败了。 Future<List<String>> uploadFiles(List _images) async { List<String> imagesUrls=[]; _images.forEach((_image) async{ StorageReference storageReference = FirebaseStorage.instance .ref() .child('posts/${_image.path}'); StorageUploadTask uploadTask = storageReference.putFile(_image); await uploadTask.onComplete; imagesUrls.add(await storageReference.getDownloadURL()); }); print(imagesUrls); return imagesUrls; } 我认为你需要Future.wait来确保所有的未来都在继续之前得到解决: Future<List<String>> uploadFiles(List<File> _images) async { var imageUrls = await Future.wait(_images.map((_image) => uploadFile(_image))); print(imageUrls); return imageUrls; } Future<String> uploadFile(File _image) async { StorageReference storageReference = FirebaseStorage.instance .ref() .child('posts/${_image.path}'); StorageUploadTask uploadTask = storageReference.putFile(_image); await uploadTask.onComplete; return await storageReference.getDownloadURL(); } 这个不起作用。它会直接返回,而不等待 foreach 循环完成。您可以使用以下代码: Future<List<String>> uploadImages(List<File> images) async { if (images.length < 1) return null; List<String> _downloadUrls = []; await Future.forEach(images, (image) async { Reference ref = FirebaseStorage.instance .ref() .child('jobPost') .child(getFileName(path: image)); final UploadTask uploadTask = ref.putFile(image); final TaskSnapshot taskSnapshot = await uploadTask.whenComplete(() {}); final url = await taskSnapshot.ref.getDownloadURL(); _downloadUrls.add(url); }); return _downloadUrls; } 您可以访问this了解原因。 试试这个 Future<List<String>> uploadFiles(List _images) async { List<String> imagesUrls=[]; _images.forEach((_image) async{ StorageReference storageReference = FirebaseStorage.instance .ref() .child('posts/${_image.path}'); StorageUploadTask uploadTask = storageReference.putFile(_image); imagesUrls.add(await (await uploadTask.onComplete).ref.getDownloadURL()); }); print(imagesUrls); return imagesUrls; } 如何使用: List<String> urls = Future.wait(uploadFiles(_images)); 有完整的例子你可以明白 import 'dart:io'; import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:flutter/material.dart'; import 'package:image_picker/image_picker.dart'; import 'package:firebase_storage/firebase_storage.dart' as firebase_storage; import 'package:path/path.dart' as Path; class AddImage extends StatefulWidget { @override _AddImageState createState() => _AddImageState(); } class _AddImageState extends State<AddImage> { bool uploading = false; double val = 0; CollectionReference imgRef; firebase_storage.Reference ref; List<File> _image = []; final picker = ImagePicker(); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Add Image'), actions: [ FlatButton( onPressed: () { setState(() { uploading = true; }); uploadFile().whenComplete(() => Navigator.of(context).pop()); }, child: Text( 'upload', style: TextStyle(color: Colors.white), )) ], ), body: Stack( children: [ Container( padding: EdgeInsets.all(4), child: GridView.builder( itemCount: _image.length + 1, gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 3), itemBuilder: (context, index) { return index == 0 ? Center( child: IconButton( icon: Icon(Icons.add), onPressed: () => !uploading ? chooseImage() : null), ) : Container( margin: EdgeInsets.all(3), decoration: BoxDecoration( image: DecorationImage( image: FileImage(_image[index - 1]), fit: BoxFit.cover)), ); }), ), uploading ? Center( child: Column( mainAxisSize: MainAxisSize.min, children: [ Container( child: Text( 'uploading...', style: TextStyle(fontSize: 20), ), ), SizedBox( height: 10, ), CircularProgressIndicator( value: val, valueColor: AlwaysStoppedAnimation<Color>(Colors.green), ) ], )) : Container(), ], )); } chooseImage() async { final pickedFile = await picker.getImage(source: ImageSource.gallery); setState(() { _image.add(File(pickedFile?.path)); }); if (pickedFile.path == null) retrieveLostData(); } Future<void> retrieveLostData() async { final LostData response = await picker.getLostData(); if (response.isEmpty) { return; } if (response.file != null) { setState(() { _image.add(File(response.file.path)); }); } else { print(response.file); } } Future uploadFile() async { int i = 1; for (var img in _image) { setState(() { val = i / _image.length; }); ref = firebase_storage.FirebaseStorage.instance .ref() .child('images/${Path.basename(img.path)}'); await ref.putFile(img).whenComplete(() async { await ref.getDownloadURL().then((value) { imgRef.add({'url': value}); i++; }); }); } } @override void initState() { super.initState(); imgRef = FirebaseFirestore.instance.collection('imageURLs'); } } 未来 uploadFile() 异步 { 整数 i = 1; for (var img in _image) { setState(() { val = i / _image.length; });
java.lang.IllegalArgumentException:位置不应该是完整的 URL
我正在尝试将视频文件从 firebase 下载到本地存储,这是我用来下载视频文件的代码 私人乐趣 downloadVideo(videoModel: VideoModel) { val videoUrl =
将多个图像上传到firebase存储,然后查看所有下载URL
我有一系列图像。在单击按钮后,我将每个单独的图像上传到 Firebase Storage,然后将 DownloadURL 放入数组中。我想在所有图像后显示这个数组...
安装@react-native-firebase/storage后构建失败
我的 React Native 应用程序工作得很好,但后来我运行了 npm install @react-native-firebase/storage ,然后运行了 cd ios 和 pod install 。 之后,发生错误,所以我添加以下行
字符串? downloadURL = userData['profile_image_url']; if (downloadURL != null && downloadURL.isNotEmpty) { 返回圆形头像( 半径:50, 背景图片:网络图片(下载UR...
我当前的react-native项目包括从android和ios上传的视频。这些视频可以在 ReactJs WebApp 中观看。这些视频存储在 firebase 存储桶中。 如果我使用下载
Firebase 个人资料图片无法在 flutter 中检索
我面临的主要问题与使用 Firebase Storage 在 Flutter 应用程序中显示个人资料图像有关。 重新加载后图像不显示:上传图像后,个人资料页面不显示
如何在flutter中获取google storage文件夹中所有文件的下载链接?
现状 我在 Firebase Storage 中有大约 200 个文件的文件夹。 在我的颤动中,我通过与文件相同的密钥列表循环获取了文件夹中所有图片的下载链接...