getDownloadURL()
メソッドを使用して、Firebaseストレージに保存されている画像のURLを取得しようとしました。
奇妙なことに、画像の代わりにオブジェクトであるURLを返します
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓例URL↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓ https://firebasestorage.googleapis.com/v0/b/example.appspot.com/o/images%2Fcat.png ↑↑↑↑ ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑例URL↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ ↑↑↑↑↑↑↑↑
オンラインで調べたところ、画像を表示するための正しいURLは次のようになっているはずです...
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓例URL↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓ https://firebasestorage.googleapis.com/v0/b/example.appspot.com/o/images%2Fcat.png?alt=media&token=sometoken
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑サンプルURL↑↑↑↑↑↑↑↑↑↑↑↑↑ ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
しかし、getDownloadURL()
..を使用してURLを取得する方法がわかりません。
これが私のコードです...
var storage = firebase.storage();
$scope.getImgUrl = function(file) {
storage.ref("images/" + file + ".png")
.getDownloadURL()
.then(function onSuccess(url) {
return url;
})
.catch(function onError(err) {
console.log("Error occured..." + err);
})
}
何か案が?
したがって、Firebaseから画像のURLを取得する正しい方法は次のとおりです。
_ $scope.getImgUrl = function(file) {
storage.child("images/" + file +".png").getDownloadURL().then(function(url) {
return url;
}).catch(function(error) {
// Handle any errors here
});
}
_
storage.child()
の代わりにstorage.ref()
を使用していることに注意してください
then()
コールバックでの戻り値は、期待どおりには機能しません。 getDownloadUrl()
を呼び出すと、promiseが返されます。そのpromiseをスコープにバインドするだけで、HTMLで使用できます。
$scope.getImgUrl = function(file) {
return storage.ref("images/" + file + ".png").getDownloadURL();
}
私のためのこの仕事
firebase.storage().ref().child('Audios/file.wav').getDownloadURL().then(function(downloadURL) {
console.log('File available at', downloadURL);
});