Typescript Ionic3上Firebase存储和Firestore的异步函数存在问题

Typescript Ionic3上Firebase存储和Firestore的异步函数存在问题,typescript,firebase,ionic-framework,ionic3,firebase-storage,Typescript,Firebase,Ionic Framework,Ionic3,Firebase Storage,我正在尝试从我上传的图像中获取下载URL。 使用此功能,我将图像上载到Firebase存储 uploadImage() { this.image = 'movie-' + new Date().getTime() + '.jpg'; let storageRef: any, parseUpload: any; return new Promise((resolve, reject) => { storageRef = firebase.storage().ref('im

我正在尝试从我上传的图像中获取下载URL。 使用此功能,我将图像上载到Firebase存储

uploadImage() {
  this.image = 'movie-' + new Date().getTime() + '.jpg';
  let storageRef: any,
  parseUpload: any;
  return new Promise((resolve, reject) => {
  storageRef = firebase.storage().ref('imgs/' + this.image);
  parseUpload = storageRef.putString(this.cameraImage, 'data_url');     
})
问题是,我想保存图像URL,以便从Firestore上的文档中获取它。 为了做到这一点,我有这个函数来获取上传图像后的dowloadURL

如果我没有错,这个方法应该返回一个字符串,如果我错了,请纠正我,因为如果我没有错,我将无法在Firestore上保存它

async getImgFromServer(imgName: string) {
  let img;
  let downloadIMG;
  img = firebase.storage().ref("/imgs/" + imgName).getDownloadURL();
  let ref= firebase.storage().ref();
  const imgRef = ref.child("/imgs/" + imgName);
  const downloadURL = await imgRef.getDownloadURL()
  return downloadURL
}
唯一的问题是,为了做到这一点,必须上传图像。 我知道如果上传图像,这个函数将始终返回url。 问题是,我不知道如何使这个功能工作时,上传图像完成。 获取url后,这是我在Firestore云数据库上保存url的功能

 updateImgFromServer(image,id){
  this.firestore.doc(`public/${id}`).set({
    img:image,
  });
 }
有没有办法确保只有在第一个oneuploadImage完成后才能执行第二个函数GetImgFromServer


我知道有很多方法可以在文件上传到我放的第一个代码片段后获得下载URL。如果有人知道如何让它工作,也可以。

是异步的,并返回一个跟踪上传进度的参数,您需要使用它。它有一个类似于承诺的方法,因此使用该方法来确定上传何时完成。

我遵循了UploadTask文档和此[one]。然而,当我试图上传它时,我得到了一个错误,上面写着:error TypeError:无法读取未定义的属性'firestore'。这是我目前的代码,我将上传一个,因为代码不适合这里。希望你能帮助我。这听起来和你最初问的问题不一样。请用你的详细信息单独问一个问题,谢谢,我是StackOverflow的新手,不知道什么时候创建一个新问题。这是你能帮我的箱子。谢谢