我有一个图库,通过从Firebase存储器获取图像的URL来显示图像。在存储中,它们被命名为(1.jpg,2.jpg,3.jpg等),我想按它们的名称对其进行排序。但是,每次我重新加载页面时,都会得到不同的顺序。有人可以帮我解决这个问题吗?
itemRef.sortBy('name')。getDownloadURL()无效 我还可以尝试在代码中添加什么来解决此问题?
created() {
let storageRef = storage.ref();
let listRef = storageRef.child('photos_main/');
listRef.listAll().then(result => {
result.items.forEach(itemRef => {
itemRef.getDownloadURL().then(url => {
this.items.push(url)
}).catch(err => {
console.log(err.message)
})
})
}).catch(err => {
console.log(err.message)
});
}
答案 0 :(得分:0)
如果您想维持订单,我认为Promise.all()会有所帮助。
这是我要怎么做:
async created () {
const imageNames = await this.getImageNames();
const imageUrls = await Promise.all(
imageNames.map(imageName => this.getDownloadURL(imageName))
);
console.log(imageUrls)
}
imageNames.map(imageName => this.getDownloadURL(imageName))
将创建一个诺言数组。
承诺都将同时开始,但将按照出现的顺序得到解决。