Я пытаюсь загрузить изображение в свое хранилище 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.)
Когда я удаляю правила и разрешаю читать и писать всем, это работает, но это не безопасный вариант.Любые идеи о том, как заставить это работать?