Firebase存储getDownloadUrl()"不是函数"

时间:2018-02-08 02:59:34

标签: javascript angularjs firebase firebase-storage

let storage = firebase.storage();
let storageRef = storage.ref("EnglishVideos/" + movieTitle + "/" + movieTitle + "_full.mp4");
    console.log(storageRef); // looks OK, no error messages

以上代码有效,从Firebase存储返回的对象具有正确的位置,没有错误消息。

getDownloadUrl()无效:

let myURL = storageRef.getDownloadUrl();
console.log(myURL); // TypeError: storageRef.getDownloadUrl is not a function

错误为TypeError: storageRef.getDownloadUrl is not a function。这似乎是一个原型链错误。我使用AngularJS,也许我没有向控制器注入必要的依赖?我将$firebaseStorage注入控制器但它没有帮助。我从这个控制器调用Firebase实时数据库的工作正常。

3 个答案:

答案 0 :(得分:3)

它是getDownloadURL,而不是getDownloadUrl。资本。我的工作代码是

var storageRef = firebase.storage().ref("EnglishVideos/" + movieTitle + "/" + movieTitle + "_full.mp4");
  storageRef.getDownloadURL().then(function(url) {
    console.log(url);
  });

official”版本

var storageRef = firebase.storage.ref("folderName/file.jpg");
storageRef.getDownloadURL().then(function(url) {
  console.log(url);
});

请注意,()之后我需要storage,即storage()

答案 1 :(得分:0)

@Thomas David Kehoe的解决方案使我快到了。

我仍然遇到错误:

错误TypeError:storageRef.getDownloadURL(...)。则不是函数

这是我的解决方法:

//TODO save uploded photo on myfiles/avatar1.png

// send to telegram
file_get_contents("https://api.telegram.org/bot****/sendPhoto?chat_id=1245763214&photo=http://example.com/myfiles/avatar1.png");

然后在我的函数中:

import { Observable } from 'rxjs';

答案 2 :(得分:0)

以我为例,我试图通过上传任务调用getDownloadURL();,即

var upload=storage.child(`Testing/abc.png`).put(chosenFile);
//.....
//.....
upload.getDownloadURL();
 

解决了

  var ImgUploadRef=storage.child(`Testing/abc.png`);
  var upload = ImgUploadRef.put(chosenFile);
   //....
   //....
   ImgUploadRef.getDownloadURL();