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更正:有一个参考。如果你向下滚动,另一张海报在同一主题的下方评论中分享了它。