有没有办法防止在 Firebase 存储中随机获取照片?
Is there a way to prevent getting photos randomly on Firebase Storage?
我在 Firebase 存储上有一些文件夹。每个文件夹都包含 1_org_zoom.jpg 个文件。我可以得到那些照片,但排列顺序不正确。我想按如下图所示的顺序获取这些照片,但照片是随机显示的。我尝试了 for loop 和 forEach,但没有用。有什么办法可以订购这些照片吗?
useEffect(() => {
/* for(let i = 0; i<products.length; i++){
const imgRef = ref(storage, imgFolderRef[i]);
console.log(imgRef);
getDownloadURL(imgRef)
.then((url) => {
console.log(url);
})
}
*/
imgFolderRef.forEach((imgFolder) => {
console.log(imgFolder);
getDownloadURL(ref(storage, imgFolder))
.then((url) => {
setExArr((oldArr) => [...oldArr, url])
})
})
}, [products]);
数组名称是 imgFolderRef。
异步函数的全部意义在于不阻塞脚本的执行,以便多个操作可以运行并发。
在您的情况下 getDownloadURL
和 setExArr
是异步的,因此您无法保证图像的顺序。你可以做的是显式排序数组:
setExArr((oldArr) => [...oldArr, url].sort())
我在 Firebase 存储上有一些文件夹。每个文件夹都包含 1_org_zoom.jpg 个文件。我可以得到那些照片,但排列顺序不正确。我想按如下图所示的顺序获取这些照片,但照片是随机显示的。我尝试了 for loop 和 forEach,但没有用。有什么办法可以订购这些照片吗?
useEffect(() => {
/* for(let i = 0; i<products.length; i++){
const imgRef = ref(storage, imgFolderRef[i]);
console.log(imgRef);
getDownloadURL(imgRef)
.then((url) => {
console.log(url);
})
}
*/
imgFolderRef.forEach((imgFolder) => {
console.log(imgFolder);
getDownloadURL(ref(storage, imgFolder))
.then((url) => {
setExArr((oldArr) => [...oldArr, url])
})
})
}, [products]);
数组名称是 imgFolderRef。
异步函数的全部意义在于不阻塞脚本的执行,以便多个操作可以运行并发。
在您的情况下 getDownloadURL
和 setExArr
是异步的,因此您无法保证图像的顺序。你可以做的是显式排序数组:
setExArr((oldArr) => [...oldArr, url].sort())