javascript - Firebase Javascript 在运行函数之前检查存储是否存在

标签 javascript firebase

有没有办法在触发 getDownloadURL 选项之前检查存储是否存在?

这是我的代码。

var storagedpurl = firebase.storage().ref(firebaseUser.uid + '/profilePicture/' + "displaypicture"); //URL to get current user dp
storagedpurl.getDownloadURL().then(function(url) { //Download dp from storage and display in circle img tag
  var firebaseimageurl = url;
  document.querySelector('img').src = firebaseimageurl;
}).catch(function(error) {
  console.log(error.code);
});

enter image description here

如果我没有配置文件图片的存储文件夹,我的控制台日志将继续显示错误,指出我没有存储对象。因此我希望它仅在存储对象存在时才运行该函数,这可能吗?

最佳答案

没有。

您必须下载来检查它是否存在。 Firebase API以正确的错误进行响应,告诉您失败的原因。

使用catch block 来处理错误:

.catch(function(error) {
  switch (error.code) {
    case 'storage/object_not_found': // <<< here you decide what to do when the file doesn't exist
      // File doesn't exist
      break;

    case 'storage/unauthorized':
      // User doesn't have permission to access the object
      break;

    case 'storage/canceled':
      // User canceled the upload
      break;

    ...

    case 'storage/unknown':
      // Unknown error occurred, inspect the server response
      break;
  }
});

错误代码的完整列表已提供 here .

关于javascript - Firebase Javascript 在运行函数之前检查存储是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46127757/

相关文章:

java - 当用户登录时,来自 Firebase 数据库的评论电子邮件为空

javascript - 使用 ASP.Net Razor Pages 进行条件验证

Angular SSR 错误 : FIRESTORE: INTERNAL ASSERTION FAILED: Unexpected state

firebase - Flutter Firebase 存储不工作 : no default bucket

javascript - "TypeError: Cannot read property ' jqcloud中默认' of undefined"

java - 单击 Firebase 通知时消息未加载

java - 无法从 Firebase 检索数据到 ListView

javascript - 在 HTML5 中裁剪图像

javascript - 将 where 子句与 JavaScript 变量一起使用

javascript - 根据获取响应快速填充数组