我正在尝试将图像上传到我的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.)
当我删除规则并允许对其全部进行读取和写入时,但这不是安全的选择。有人对如何使它正常工作有任何想法吗?