Не удаётся загрузить изображение в Firebase Storage
Я пытаюсь загрузить картинку в базу данных:
import 'package:firebase_storage/firebase_storage.dart' as fStorage;
XFile? imageXFile;
final ImagePicker _picker = ImagePicker();
String userImageUrl = "";
Future<void> _getImage() async {
imageXFile = await _picker.pickImage(source: ImageSource.gallery);
setState(() {
imageXFile;
});
}
String fileName = DateTime.now().millisecondsSinceEpoch.toString();
fStorage.Reference reference =
fStorage.FirebaseStorage.instance.ref().child("users").child(fileName);
fStorage.UploadTask uploadTask = reference.putFile(File(imageXFile!.path));
fStorage.TaskSnapshot taskSnapshot = await uploadTask.whenComplete(() {});
await taskSnapshot.ref.getDownloadURL().then((url) {
userImageUrl = url;
});
Но в терминале выдаёт ошибку:
E/StorageException(22431): StorageException has occurred.
E/StorageException(22431): User does not have permission to access this object.
E/StorageException(22431): Code: -13021 HttpResult: 403
E/StorageException(22431): The server has terminated the upload session
E/StorageException(22431): java.io.IOException: The server has terminated the upload session
E/StorageException(22431): at com.google.firebase.storage.UploadTask.serverStateValid(UploadTask.java:339)
E/StorageException(22431): at com.google.firebase.storage.UploadTask.shouldContinue(UploadTask.java:308)
E/StorageException(22431): at com.google.firebase.storage.UploadTask.run(UploadTask.java:229)
E/StorageException(22431): at com.google.firebase.storage.StorageTask.lambda$getRunnable$7$StorageTask(StorageTask.java:1072)
E/StorageException(22431): at com.google.firebase.storage.-$$Lambda$StorageTask$q9YBoR_A8LB-JxTCx8JRQvabaZs.run(Unknown Source:2)
E/StorageException(22431): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/StorageException(22431): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/StorageException(22431): at java.lang.Thread.run(Thread.java:929)
E/StorageException(22431): Caused by: java.io.IOException: { "error": { "code": 403, "message": "Permission denied." }}
Вот правила Firabase Storage:
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if true;
}
}
}
Как исправить ошибку?