使用新的Firebase API,您可以将文件从客户端代码上传到云存储。examples假定文件名在上载过程中是已知的或静态的:
// Create a root reference
var storageRef = firebase.storage().ref();
// Create a reference to 'mountains.jpg'
var mountainsRef = storageRef.child('mountains.jpg');
// Create a reference to 'images/mountains.jpg'
var mountainImagesRef = storageRef.child('images/mountains.jpg');
或
// File or Blob, assume the file is called rivers.jpg
var file = ...
// Upload the file to the path 'images/rivers.jpg'
// We can use the 'name' property on the File API to get our file name
var uploadTask = storageRef.child('images/' + file.name).put(file);
随着用户上传自己的文件,名称冲突将成为一个问题。如何让Firebase创建一个文件名,而不是自己定义它?数据库中是否有类似于push()
的功能,用于创建唯一的存储引用?
发布于 2016-05-26 02:18:39
Firebase存储产品经理:
TL;DR:使用UUID生成器(在Android (UUID)和iOS (NSUUID)中,它们是内置的,在JS中,您可以使用类似以下内容:Create GUID / UUID in JavaScript?),如果您想保留它,则附加文件扩展名(将file.name拆分为'.‘并获取最后一段)
我们不知道开发人员会想要哪个版本的独特文件(见下文),因为有很多这样的用例,所以我们决定让开发人员来选择。
images/uuid/image.png // option 1: clean name, under a UUID "folder"
image/uuid.png // option 2: unique name, same extension
images/uuid // option 3: no extension
在我看来,在我们的文档中解释这件事是合理的,所以我会在内部提交一个bug来记录它:)
发布于 2021-01-28 14:39:17
首先安装uuid - npm i uuid
然后像这样定义文件引用
import { v4 as uuidv4 } from "uuid";
const fileRef = storageRef.child(
`${uuidv4()}-${Put your file or image name here}`
);
之后,使用fileRef
上传文件
fileRef.put(Your file)
https://stackoverflow.com/questions/37444685
复制相似问题