【问题标题】:Firebase getDownloadURL error "User canceled the upload/download"Firebase getDownloadURL 错误“用户取消了上传/下载”
【发布时间】:2020-12-21 11:08:37
【问题描述】:

我有以下代码来获取存储在 firebase 存储中的图像的 url。

const firebase = require('firebase');
require('firebase/storage');

firebase.initializeApp(conf);

const firebaseRef = firebase.storage().ref(path);

firebaseRef.getStorage().getDownloadURL().then(url => {
    console.log(url);
}).catch(function (error) {
    console.log(error);
});

当我尝试运行它(使用正确的路径)时,它总是以错误结束:

FirebaseStorageError {
  code_: 'storage/canceled',
  message_: 'Firebase Storage: User canceled the upload/download.',
  serverResponse_: null,
  name_: 'FirebaseError'
}

我有这个存储规则:

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write
      // : if request.auth != null;
    }
  }
}

当我尝试使用 nodejs api 上传或删除一些文件时,它工作得很好,但在获取一个文件的 url 时它总是返回相同的错误。

我试图找出可能导致此问题的原因,但我找不到任何东西:https://firebase.google.com/docs/storage/web/handle-errors

当然,作为用户,我不会取消上传/下载阶段。

提前谢谢你。

【问题讨论】:

  • 你能说明你是如何导入firebase的吗?或者具体来说:您使用什么节点包来访问 Firebase?询问的原因是您标记了 Node.js,但据我所知,Node.js Admin SDK 没有getDownloadURL 方法,我也找不到您在文档中调用的getStorage() 方法JavaScript 或 Node.js SDK。
  • 我编辑了我的问题以添加 te "require(package)" 部分。另外,我正在关注这个 firebase 文档来完成这项工作:firebase.google.com/docs/storage/web/download-files
  • 啊哈...这只是常规的 JavaScript SDK,但使用的是节点捆绑器。我更改了标签以反映这一点,因为 Node.js 和客户端 JavaScript 之间的 API 相当不同。

标签: javascript firebase firebase-storage


【解决方案1】:

我很确定问题来自于调用 getStorage(),它会返回存储桶的根目录,您无法在该根目录上生成下载 URL。

如果这是原因,只需从链中删除该调用即可。所以你最终会得到类似的东西:

const firebaseRef = firebase.storage().ref(path);

firebaseRef.getDownloadURL().then(url => {
    console.log(url);
}).catch(function (error) {
    console.log(error);
});

【讨论】:

  • 嗯....我看不出在这种情况下出了什么问题。能不能在jsbin之类的网站上设置一个复现,让我看看?
  • 好吧,我会尝试在此处发布链接。谢谢你的帮助:)
  • 在 jsbin 中测试后,我意识到这个库是为客户端而不是服务器端制作的。我看到了另一个解释它的答案:stackoverflow.com/a/56597890/7719904 我会将此答案标记为正确答案。再次感谢您的帮助!
猜你喜欢
  • 2021-12-20
  • 2018-11-07
  • 2020-12-05
  • 2020-11-15
  • 2020-01-18
  • 1970-01-01
  • 2020-07-09
  • 2020-10-04
相关资源
最近更新 更多