403错误页面(Kotlin)

r3i60tvu  于 2023-02-05  发布在  Kotlin
关注(0)|答案(1)|浏览(99)

获取此错误:
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;
    }
  }
}

我一直无法找到一个答案,为什么它会上传,但不下载的网址。

sdnqo3pr

sdnqo3pr1#

代码中的问题是由于当您尝试从云存储读取文件时,您的用户未经过身份验证。要能够读取文件,您应始终确保您的使用在Firebase中经过身份验证。也就是说,请在执行云存储操作之前检查FirebaseUser对象是否为空。

相关问题