使用自定义名称属性在 Firebase 中存储视频 blob,returns 未定义

Storing a Video blob in Firebase with custom Name attribute, returns Undefined

问题是我的所有 Collections 文档都引用同一个 blob 文件,因为每次上传都会替换现有的存储 blob。

我想我需要为 Blob 分配一个名称,以便在每次上传时存储一个新条目。

尝试使用 Math.random() 分配名称,但没有成功。建议?

import { useParams, useHistory } from "react-router-dom";
const { productID } = useParams();

async function handleSubmitUpload() {
        if (recordedChunks.length) {
            const promises = [];
            const blob = new Blob(recordedChunks, {Name: Math.random()}, {type: "video/webm"});


            const reviewRef = await storage().ref(`prodReviews/${blob.Name}`)
            const uploadTask = await storage().ref(`prodReviews/${blob.Name}`).put(blob);
            await promises.push(uploadTask);
          
          
            const videoUrl = await reviewRef.getDownloadURL();
            const timestamp = new Date();

            await firestore
                .collection("products")
                .doc(productID)
                .collection("productReviewClips")
                .add({videoUrl, userID: auth.currentUser.uid, createdDate: timestamp }) 

               
                history.push(`/product/${productID}`);

                setRecordedChunks([]);
        }
    }

Blob() constructor seems to take only 2 parameters but you are passing 3. You can use either Firestore SDK or UUID 生成随机 ID 并将其用作文件名,如下所示:

const blob = new Blob(recordedChunks, {type: "video/webm"});

// Get a random ID 
const randomId = firestore.collection("test").doc().id

// Upload to Firebase Storage
const reviewRef = await storage().ref(`prodReviews/${randomId}`)