我目前正在使用React.js进行我的第一个项目——建立一个在线商店。我正在使用Firebase Storage上传产品的图像。我能够上传它们,并在那之后通过另一个请求成功获得它们的URL。
上传完成后是否可以获得正确的url?我查看了uploadBytes函数的文档,希望它能返回一个可以与图像关联的url,但它没有。
我想上传图片并知道它的url,这样我就可以使用它的url作为参考将额外的信息上传到数据库,如价格、数量等,然后根据该url从存储和数据库中获取信息。
uploadBytes()
方法返回一个包含UploadResult
对象的Promise,该对象具有两个属性:
metadata
,包含从服务器发回的元数据ref
,引发此次上传的引用
因此,您可以使用ref
属性来获取下载URL。(或者,您可以直接使用传递给uploadBytes()
方法的引用,因为它是相同的!(
例如:
import { getStorage, ref, uploadBytes } from "firebase/storage";
const storage = getStorage();
const storageRef = ref(storage, 'some-child');
const bytes = new Uint8Array([0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21]); // Example
uploadBytes(storageRef, bytes)
.then((uploadResult) => {
return getDownloadURL(uploadResult.ref)
})
.then((downloadURL) => {
console.log('File available at', downloadURL);
});