Firebase getDownloadURL()没有返回任何内容

时间:2018-01-30 14:26:37

标签: javascript angular firebase ionic-framework firebase-storage

我尝试将图片上传到Firebase存储,然后从存储中获取下载URL,以便将其保存到我的数据库中。

注释掉的行有效,所以我知道" getDownloadURL"功能或在我的存储参考中。我有一个类似的功能,可以使用较短的引用(userId +' /' + profilePicture)。

let returnVal;

const image = 'data:image/jpeg;base64,' + result;

const pictures = firebase.storage().ref(userId + '/' + newPostKey +'/' + 'pictures');
pictures.putString(image, `data_url`);

//firebase.database().ref('Posts/' + userId + '/' + newPostKey).child('photoURL').set("ifni");

firebase.storage().ref(userId + '/' + newPostKey + '/' + pictures).getDownloadURL().then(function (url) {
  // Execute (unknown)
  returnVal = url;

  firebase.database().ref('Posts/' + userId + '/' + newPostKey).child('photoURL').set(returnVal);
})

2 个答案:

答案 0 :(得分:1)

您可以从此doc

中提到的回调承诺中获取网址
pictures.putString(image, `data_url`).then(function(snapshot) {
  console.log('Uploaded a data_url string!');
  var url = snapshot.downloadURL;
  //add it to firestore
});

答案 1 :(得分:0)

您可以执行以下操作

storageRef = firebase.storage().ref(userId + '/' + newPostKey +'/' + 'pictures');
    parseUpload = storageRef.putString(image, 'data_url');
    parseUpload.on('state_changed', (_snapshot) => {
          },
            (_err) => {
              // handle error here
            },
            (success) => {
              let url = parseUpload.snapshot.downloadURL
            });
firebase.database().ref('Posts/' + userId + '/' + newPostKey).child('photoURL').set(url);