尝试从Firebase存储中上传的文件中检索URL时,出现无限循环,该循环锁定了我的浏览器。
HTML
<div class="row" v-for="(item, idx) in data" :key="item.id">
<img :src="get_image_url(item.id, item.images)">
</div>
VueJS函数 获取图像
get_image_url: function(id, images) {
storage.ref().child('products/' + id + '/' + images[0]).getDownloadURL()
.then(url => {
console.log(url)
return url
})
.catch(err => {
console.log(err)
})
}
获取数据
created: function() {
db.collection('shops').doc(vm.$route.params.id)
.collection('inventory').get()
.then(res => {
res.forEach(doc => {
const id = doc.id
const data = doc.data()
vm.data.push({ id, ...data })
})
})
}
答案 0 :(得分:1)
如果在获取数据的同时获取图像的网址,似乎不会导致无限循环。
HTML
<div class="row" v-for="(item, idx) in data" :key="item.id">
<img :src="item.url">
</div>
Vue已创建
created: function() {
db.collection('shops').doc(vm.$route.params.id)
.collection('inventory').get()
.then(res => {
res.forEach(doc => {
storage.ref().child('products/' + doc.id + '/' + doc.data().images[0]).getDownloadURL()
.then(resp => {
const id = doc.id
const data = doc.data()
const url = resp
vm.data.push({ id, resp, ...data })
})
.catch(err => {
console.log(err)
})
})
}