我之前曾问过一个问题,要从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),如下所示:
https://firebasestorage.googleapis.com/v0/b/project-PROYECT_NUMBER.appspot.com/o/Messages%2Fimages%2F-KUj4wvXXl6aj9XXXX%2F1493147111111?alt=media&token=TOKEN
如何在服务器端获得与使用AndroID或iOS SDK所获得的正确的downloadUrl?
解决方法:
无法像使用AndroID,iOS或JavaScript SDK那样在服务器端获取下载URL.您必须通过调用getSignedUrl()来生成一个url.
您可能要检查是否有权读取给定URL上的文件.
默认情况下,您必须经过身份验证.
在Firebase控制台中检查您的存储规则
https://firebase.google.com/docs/storage/security/#authorization
总结以上是内存溢出为你收集整理的android-Firebase SignedURL不等于下载URL存储全部内容,希望文章能够帮你解决android-Firebase SignedURL不等于下载URL存储所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)