gpt4 book ai didi

java - 如何因 Firebase 存储中的文件大小限制规则而出现拒绝上传错误

转载 作者:行者123 更新时间:2023-12-02 08:51:14 28 4
gpt4 key购买 nike

我在 firebase 存储中设置了一条规则,限制用户上传的文件不超过 20MB,

service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow write: if request.auth !=null;
allow read: if request.auth !=null
&& request.resource.size < 20 * 1024 * 1024;
}
}
}

这工作正常,但问题是当视频因超出限制而被服务器拒绝时,没有监听器来获取该消息或错误。

我尝试了以下方法,但没有成功

       UploadTask uploadTask = FirebaseStorage.getInstance().getReference()
.child("VideoText")
.child(VideoIdentifire)
.putFile(SendVideo);
uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(@NonNull UploadTask.TaskSnapshot taskSnapshot) {

long progress = 0;
progress = (long) (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();

Toast.makeText(getContext(), "Uploading is " + progress + "% done", Toast.LENGTH_LONG).show();

}
})

.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {

Toast.makeText(getContext(), "Fail" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
})
.addOnCanceledListener(new OnCanceledListener() {
@Override
public void onCanceled() {

Toast.makeText(getContext(), "cancel", Toast.LENGTH_SHORT).show();
}
})

.addOnPausedListener(new OnPausedListener<UploadTask.TaskSnapshot>() {
@Override
public void onPaused(@NonNull UploadTask.TaskSnapshot taskSnapshot) {

Toast.makeText(getContext(), "paused", Toast.LENGTH_SHORT).show();

}
})

.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

}
});

如何解决这个问题?

最佳答案

您的规则拒绝对大于 20MB 的资源进行读取操作,而您的代码正在写入文件。要拒绝写入操作,您还需要向写入规则添加大小检查:

 allow write: if request.auth !=null;
&& request.resource.size < 20 * 1024 * 1024;

关于java - 如何因 Firebase 存储中的文件大小限制规则而出现拒绝上传错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60753303/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com