其他分享
首页 > 其他分享> > android-Firebase SignedURL不等于下载URL存储

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),如下所示:

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

标签:firebase,download,url,firebase-storage,android
来源: https://codeday.me/bug/20191026/1933443.html