Fire Storage 异常([firebase_storage/unauthorized] 用户无权执行所需的操作。)(我的规则是允许读/写)

can*_*nsu 7 dart firebase flutter flutter-android

我正在尝试从 firebase firestore 获取图像,在尝试获取图像下载 url 时出现以下异常:

W/StorageUtil(10206):没有请求的身份验证令牌

(与此错误类似的问题无法解决问题)

尽管我的安全规则允许读取和写入,但我仍然收到此错误。

有什么想法这有什么问题吗?

获取图片url的代码:

  static Future<dynamic> loadImage(BuildContext context, String image) async {
    return await FirebaseStorage.instance.ref().child(image).getDownloadURL();
  }
Run Code Online (Sandbox Code Playgroud)

调用这个loadImage函数:

  Future<Widget> getImage(BuildContext context, String imgName) async {
   Image image;
    await FireStorageService.loadImage(context, imgName).then((value) {
    print(value);
    image = Image.network(value.toString(), fit: BoxFit.scaleDown);
    return image;
   });
  }
Run Code Online (Sandbox Code Playgroud)

调用这个 getImage 函数:

child: FutureBuilder(
future: getImage(context, "/images/test1.jpg"),
...
)
Run Code Online (Sandbox Code Playgroud)

我的 firebase 存储规则:

rules_version = '2';
service firebase.storage {
match /images/{imageId} {
  allow read,write;
}
}
Run Code Online (Sandbox Code Playgroud)

存储规则ss:

在此输入图像描述

我目前的 firebase 商店: 我目前的 firebase 商店

Lam*_*sai 6

  • 导航到 Firebase 控制台

  • 在侧栏中的“开发”下打开“存储”

  • 打开规则选项卡将控制台上的规则替换为以下规则:

     rules_version = '2';
    
     service firebase.storage {
    
       match /b/{bucket}/o {
    
         match /{allPaths=**} {
    
           allow read, write
    
         }
    
       }
    
     }
    
    Run Code Online (Sandbox Code Playgroud)

并发布完成