android-Firebase SignedURL不等于下载URL存储
作者:互联网
我之前曾问过一个问题,要从Firebase Storage获得downloadURL,给我的答案是:
bucket.file(filename).getSignedUrl({
action: 'read',
expires: '03-17-2025'
}, function(err, url) {
if (err) {
console.error(err);
return;
}
// The file is now available to read from this URL.
request(url, function(err, resp) {
// resp.statusCode = 200
});
});
当我使用它通过Glide下载图像或使用ExoPlayer复制音频或视频文件时,以前的代码给出的代码不起作用.
但是,当文件上传时,我得到的网址与Firebase Storage提供的网址完全不同(该网址确实适用于Glide和ExoPlayer),如下所示:
如何在服务器端获得与使用Android或iOS SDK所获得的正确的downloadUrl?
解决方法:
无法像使用Android,iOS或Javascript SDK那样在服务器端获取下载URL.您必须通过调用getSignedUrl()来生成一个url.
您可能要检查是否有权读取给定URL上的文件.
默认情况下,您必须经过身份验证.
在Firebase控制台中检查您的存储规则
https://firebase.google.com/docs/storage/security/#authorization
标签:firebase,download,url,firebase-storage,android 来源: https://codeday.me/bug/20191026/1933443.html