小编can*_*nsu的帖子

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

我正在尝试从 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 商店

dart firebase flutter flutter-android

7
推荐指数
1
解决办法
1万
查看次数

在 C# 中使用/不使用正则表达式清除不需要的十六进制字符

我必须以更好的方式清除异常消息中的十六进制字符。目前它可以手动替换字符,这看起来完全是灾难,如下所示:

\n
            var clearedStr = str.Replace(Convert.ToString((char)0x01), "")\n            .Replace(Convert.ToString((char)0x02), "")\n            .Replace(Convert.ToString((char)0x03), "")\n            .Replace(Convert.ToString((char)0x04), "")\n            .Replace(Convert.ToString((char)0x05), "")\n            .Replace(Convert.ToString((char)0x06), "")\n            .Replace(Convert.ToString((char)0x07), "")\n            .Replace(Convert.ToString((char)0x08), "")\n            .Replace(Convert.ToString((char)0x0B), "")\n            .Replace(Convert.ToString((char)0x0C), "")\n            .Replace(Convert.ToString((char)0x0E), "")\n            .Replace(Convert.ToString((char)0x0F), "")\n            .Replace(Convert.ToString((char)0x10), "")\n            .Replace(Convert.ToString((char)0x11), "")\n            .Replace(Convert.ToString((char)0x12), "")\n            .Replace(Convert.ToString((char)0x13), "")\n            .Replace(Convert.ToString((char)0x14), "")\n            .Replace(Convert.ToString((char)0x15), "")\n            .Replace(Convert.ToString((char)0x16), "")\n            .Replace(Convert.ToString((char)0x17), "")\n            .Replace(Convert.ToString((char)0x18), "")\n            .Replace(Convert.ToString((char)0x19), "")\n            .Replace(Convert.ToString((char)0x1a), "")\n            .Replace(Convert.ToString((char)0x1b), "")\n            .Replace(Convert.ToString((char)0x1c), "")\n            .Replace(Convert.ToString((char)0x1d), "")\n            .Replace(Convert.ToString((char)0x1e), "")\n            .Replace(Convert.ToString((char)0x84), "")\n            .Replace(Convert.ToString((char)0x86), "")\n            .Replace(Convert.ToString((char)0x87), "")\n            .Replace(Convert.ToString((char)0x88), "")\n            .Replace(Convert.ToString((char)0x89), "");\n
Run Code Online (Sandbox Code Playgroud)\n

例如,带有十六进制字符的消息如下:

\n

其中一些字符

\n

实际上我写了一个正则表达式,但它适用于像 0x1e 这样的十六进制字符,但不适用于其等效字符:

\n

但我需要找到这些字符,而不是等效的十六进制字符:

\n

"","\xe2\x80\x98","\xc6\x92","","","\xe2\x80\x99","","\xc5\xa1","\xcb\x86" …

.net c# regex asp.net hex

3
推荐指数
1
解决办法
4035
查看次数

标签 统计

.net ×1

asp.net ×1

c# ×1

dart ×1

firebase ×1

flutter ×1

flutter-android ×1

hex ×1

regex ×1