获取此错误:
E/存储实用程序:获取标记java. util. concurrent时出错。执行异常:防火墙未登录用户异常:请先登录,然后再尝试获取令牌。
这也是:
存储异常(E/S):出现StorageException,用户没有权限访问该对象,代码:-13021 HTTP结果:403 E/存储异常:{"错误":{"代码":403、"留言":"权限被拒绝。"}} java.io.IOException:{"错误":{"代码":403、"留言":"权限被拒绝。"}}
当此代码在我的Android应用程序中被击中:
val urlTask = uploadTask?.continueWithTask { task ->
if (!task.isSuccessful) {
Toast.makeText(context, "Upload to Cloud Failed!", Toast.LENGTH_SHORT).show()
task.exception?.let {
throw it
}
} imagesRef?.downloadUrl.....ERROR IS GENERATED HERE...
当我打开电子邮件/密码授权并关闭匿名登录时开始,但是,我重新打开了匿名登录,并在开始上传之前确保auth不为空。
val auth = Firebase.auth
val user = auth.currentUser
此外,它保存上传的图像到存储没有问题...但不会下载URL。
以下是适用于我的Firebase存储的规则:
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /images/{imageId} {
allow write: if request.auth != null;
allow read: if request.auth != null;
}
}
}
我一直无法找到一个答案,为什么它会上传,但不下载的网址。
1条答案
按热度按时间sdnqo3pr1#
代码中的问题是由于当您尝试从云存储读取文件时,您的用户未经过身份验证。要能够读取文件,您应始终确保您的使用在Firebase中经过身份验证。也就是说,请在执行云存储操作之前检查FirebaseUser对象是否为空。