android - 火力地堡 : How to check file already exist before Upload files

标签 android firebase

<分区>

我使用 firebase 存储作为云存储

上传文件时,如果文件已存在于存储引用中,我不想上传。我只需要跳过上传并继续下一个文件。

目前我是这样上传的

    String pathString = "/Files/" + filename;                        
    StorageReference filepathReference = rootreference.child(pathString);
    StorageReference uploadRef = filepathReference.child(pathString);
    UploadTask uploadTask = uploadRef.putFile(file);

如果文件已经存在,显然会再次上传并替换。我只想通过检查存储桶中已存在的文件名来跳过不需要的上传。 那可能吗?

最佳答案

尝试获取元数据。如果失败,则文件不存在

uploadRef.getMetadata()
    .addOnSuccessListener({ /*File exists*/ })
    .addOnFailureListener({
        //File do not exist
        UploadTask uploadTask = uploadRef.putFile(file);
    })

如果你想完全禁止文件覆盖,而不仅仅是检查文件是否存在,你可以这样指定存储的安全规则

allow write: if resource.metadata == null; // 

但是我从来没有测试过,所以我不确定,也许只是 resource == null 也可以工作

关于android - 火力地堡 : How to check file already exist before Upload files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52645082/

相关文章:

android - Scala 适合我吗? (专注于功能/OOP 风格的 C# 开发人员)

android - 如何在安卓模拟器中使用蓝牙?

android - 在社交网站上上传应用程序内容

php - 如何从firebase存储PHP获取图像的下载URL?

firebase - 在使用 firebase 的推送通知中,onTokenRefresh 与 getToken 之间有什么区别?

javascript - 带有 Javascript 的 Firebase Auth 应该使用 HTTPS

java - Firebase 发送 HttpPost 消息时出现错误 400

java - Android 中的计数器出现错误

android - 在 Android 中缩放布局样式的最佳方式?

android - Firestore 安全规则 : 'request.auth.uid' Is Null With Android Request