【发布时间】:2018-04-03 04:11:12
【问题描述】:
我想在for循环完成并上传完成后执行代码this.createListing()。
如果我在 for 循环之后运行它,则不会考虑所有上传是否已完成。因此它不会从上传的文件中获取downloadURL。
理想情况下,我希望在所有上传完成后运行该功能。 任何帮助表示赞赏。这是我的代码:
submitForm() {
const user = firebase.auth().currentUser
const listingPostKey = firebase.database().ref('listings/').push().key
const listingRef = firebase.database().ref('listings/' + listingPostKey)
for (let i = 0; i < this.uploadedImages.length; i++) {
var storageRef = firebase.storage().ref('images/' + user.uid + '/' + this.imageName)
var uploadTask = storageRef.put(this.uploadedImages[i])
uploadTask.on('state_changed', (snapshot) => {
var progress = (snapshot.bytesTransferred / snapshot.totalBytes) * 100
}, error => {
this.errors.push(error.message)
}, () => {
// Upload complete
var downloadURL = uploadTask.snapshot.downloadURL
this.images_url.push(downloadURL)
this.createListing()
})
}
}
【问题讨论】:
标签: javascript firebase vue.js firebase-storage