Я пытаюсь подготовиться к неизбежности, когда пользователь загружает данные в хранилище Firebase, но не имеет подключения к Интернету.В настоящее время, если я использую следующее и отключаю все интернет-соединения, он никогда не достигает catchError
, он просто ждет и печатает dowloadUrl, когда соединение возвращается.
FirebaseStorage.instance.setMaxOperationRetryTimeMillis(10);
final StorageReference ref = FirebaseStorage.instance.ref().child("AllUsers").child(uuid).child(fileName);
final StorageUploadTask uploadTask = ref.putFile(image, const StorageMetadata(contentLanguage: "en"));
Uri downloadUrl;
await uploadTask.future.then( (UploadTaskSnapshot snapshot) {
downloadUrl = snapshot.downloadUrl;
print(downloadUrl)
}).catchError((error) {
print(error);
});
Означает ли это, что у меня нетбеспокоиться о кэшировании каждого изображения для последующей загрузки и о том, что оно обрабатывается?Я предполагаю, что нет, но это было бы здорово.
Обновление:
Добавление этого вместо catch затем:
try {
downloadUrl = (await uploadTask.future).downloadUrl;
print("$downloadUrl");
} catch (error) {
print(error);
}
не сделал вызов после запроса.
Обновление 2:
Попытка добавить следующее:
FirebaseStorage.instance.setMaxUploadRetryTimeMillis(10);
FirebaseStorage.instance.setMaxOperationRetryTimeMillis(10);
FirebaseStorage.instance.setMaxDownloadRetryTimeMillis(10);
, который возвращает E/StorageException(13068): The operation retry limit has been exceeded.
, но через консоль и не распознается как ошибка в моем catchError
илиtry catch
блок.