【问题标题】:Firebase downloadURL invalid URLFirebase downloadURL 无效的网址
【发布时间】:2017-07-26 17:02:24
【问题描述】:

在firebase中生成downloadURL后使用:

{ 
 ... 

 let url = uploadTask.snapshot.downloadURL;

 ...
}

url 内容类似:

https://firebasestorage.googleapis.com/v0/b/sd2ds-.23.appspot.com/o/Usr%2FEls%2 ...

不用担心在浏览器或 HTML 标签中使用,但是,当我尝试使用 photoURL 中生成的 url 时会生成错误:

photoURL 字段必须是有效的 URL。

我已经尝试过使用 decodeURI(url) 但没有任何改变。

Firebase 在 /(斜杠)位置生成带有 %2 的 url,这似乎是问题所在。

有胶水吗?

谢谢

【问题讨论】:

  • decodeURI(url) 无法正常工作,但是,decodeURIComponent(url) 可以完美地删除所有 %2 %20 等... A一种解决方法...

标签: firebase firebase-storage


【解决方案1】:

使用decodeURIComponent

带有错误处理功能的建议:

const validUrl     = require('valid-url');

const fillPhotoUrl = function(p) { return (p && validUrl.isUri(p)) ? decodeURIComponent(p) : null; };

然后使用它:

{ 
 ... 

 let url = fillPhotoUrl(uploadTask.snapshot.downloadURL);

 ...
}

如果你想知道 decodeURI 和 decodeURIComponent 的区别,请看这个question

【讨论】:

    猜你喜欢
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 2019-12-14
    相关资源
    最近更新 更多