Firebase存储getDownloadUrl不是函数

问题描述 投票:-2回答:1

我正在使用Firebase开发vue应用程序,并且我已经参考了similar问题,但没有找到解决我问题的方法。我要做的是将下载URL存储到我的事件数据库中。我的代码:

var stRef = st.ref(`event-photos/${eventId}`) // st is firebase.storage()
var upTask = stRef.put(this.fileBlob)
upTask.on('state_changed', snapshot => {
  this.uploadValue = (snapshot.bytesTransferred/snapshot.totalBytes)*100
  }, error => {
  console.log(error.message)
  }, () => {
    upTask.snapshot.ref.getDownloadUrl().then(url => {
      db.collection('events').doc(eventId).set({
        image_url: url
      }).then(() => {
        alert('Event creation successful')
      }).catch(error => {
        alert(error.message)
      })
   })
})

我已从this页获取了代码(请参阅注册事件处理程序的示例)。我可能做错了什么?

firebase vuejs2 firebase-storage
1个回答
0
投票

[而不是使用on()侦听器,您应该使用on()方法,该方法返回一个Promise,以便链接异步任务返回的不同Promises(即then()then())。

因此,以下应该可以解决问题:

getDownloadUrl()
© www.soinside.com 2019 - 2024. All rights reserved.