Javascript 如何检查Firebase存储中是否存在文件?

Javascript 如何检查Firebase存储中是否存在文件?,javascript,firebase,firebase-storage,Javascript,Firebase,Firebase Storage,使用数据库时,您可以执行snapshot.exists()检查某些数据是否存在。根据文档,没有类似的存储方法 检查Firebase存储中是否存在某个文件的正确方法是什么?我认为FB存储API的设置方式是用户只请求存在的文件 因此,必须将不存在的文件作为错误处理: 您可以使用which返回一个,它可以用来捕获“未找到”错误,或者处理文件(如果存在)。例如: storageRef.child("file.png").getDownloadURL().then(onResolve, onReject

使用数据库时,您可以执行
snapshot.exists()
检查某些数据是否存在。根据文档,没有类似的存储方法


检查Firebase存储中是否存在某个文件的正确方法是什么?

我认为FB存储API的设置方式是用户只请求存在的文件

因此,必须将不存在的文件作为错误处理:

您可以使用which返回一个,它可以用来捕获“未找到”错误,或者处理文件(如果存在)。例如:

storageRef.child("file.png").getDownloadURL().then(onResolve, onReject);

function onResolve(foundURL) {
    //stuff
}

function onReject(error) {
    console.log(error.code);
}

我在Node.js Firebase Gogole Cloud Storage SDK中找到了一个很好的解决方案,它告诉我们,对于那些搜索者来说,共享它是非常理想的

const admin=require(“firebase管理员”);
const bucket=admin.storage().bucket('my-bucket');
const storageFile=bucket.file('path/to/file.txt');
存储文件
.exists()
.然后(()=>{
log(“文件存在”);
})
.catch(()=>{
log(“文件不存在”);
});
在撰写本文时,Firebase添加了一个.exists()方法。另一个人回应并提到了这一点,但他们提供的示例代码不正确。我自己在搜索解决方案时发现了这个线程,起初我很困惑,因为我尝试了他们的代码,但它总是返回“文件存在”,即使在文件明显不存在的情况下也是如此

exists()返回包含布尔值的数组。正确的使用方法是检查布尔值,如下所示:

const storageFile = bucket.file('path/to/file.txt');
storageFile
  .exists()
  .then((exists) => {
        if (exists[0]) {
          console.log("File exists");
        } else {
          console.log("File does not exist");
        }
     })

我正在共享此内容,以便下一个发现此线程的人可以看到它并节省一些时间。

警告:如果您有数千个文档,则可能会很昂贵,因为下载url将由Firebase定价。示例代码错误。检查文档上的示例:谢谢。这个方法有谷歌文档吗?我似乎找不到。@GrantSingleton我自己也找不到任何关于它的官方文件。@GrantSingleton更正:有一个参考。如果你向下滚动,另一张海报在同一主题的下方评论中分享了它。