FIRStorageErrorDomain,用户无权访问gs://

时间:2019-06-03 18:07:38

标签: firebase flutter firebase-storage

我正在尝试将图像上传到我的Firebase存储,但是却收到一条错误消息,指出我没有权限,但是我已经登录了经过身份验证的用户。

在发出上传图像请求之前,我正在打印当前用户的UID,并且正在打印并显示我当前已通过身份验证。

访问存储的规则与数据库相同,并且该用户没有读写数据库的问题,所以我不知道为什么它不让我写存储:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth.uid != null;
    }
  }
}

这是我正在使用的代码:

FirebaseUser user = await firebaseAuth.currentUser();
          print(user.uid);


          final StorageReference storageRef =
          FirebaseStorage.instance.ref().child(name + 'Logo.jpg');


          final StorageUploadTask uploadTask = storageRef.putFile(
            logo,
            StorageMetadata(
              contentType: 'image/jpg',
            ),
          );

          final StorageTaskSnapshot downloadUrl =
          (await uploadTask.onComplete);
          final String url = (await downloadUrl.ref.getDownloadURL());
          print('URL Is $url');

我收到的崩溃是:

Unhandled Exception: PlatformException(Error -13021, FIRStorageErrorDomain, User does not have permission to access gs://*************.com/etetrLogo.jpg.)

当我删除规则并允许对其全部进行读取和写入时,但这不是安全的选择。有人对如何使它正常工作有任何想法吗?

0 个答案:

没有答案