Skip to content

Commit 479f341

Browse files
authored
Merge pull request #415 from percula/develop
chore: Update dependencies for Firebase Cache Manager
2 parents 08e671d + 530f20c commit 479f341

File tree

4 files changed

+33
-3
lines changed

4 files changed

+33
-3
lines changed

flutter_cache_manager_firebase/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,29 @@
11
## [2.0.3] - 2024-07-23
2+
23
* Updates dependencies ([#457](https://github.com/Baseflow/flutter_cache_manager/pull/457))
34

45
## [2.0.2] - 2024-04-25
6+
57
* Updates dependencies to their latest versions.
68

79
## [2.0.1] - 2021-08-27
10+
811
* Update dependencies
912

1013
## [2.0.0] - 2021-05-28
14+
1115
* Update to null safety
1216

1317
## [1.1.0] - 2021-01-14
18+
1419
* Update Firebase dependency
1520

1621
## [1.1.0-beta] - 2020-10-02
22+
1723
* Update CacheManager dependency to 2.x.x.
1824

1925
## [1.0.1] - Update firebase dependency
26+
2027
* Added support for version 4.x.x
2128

2229
## [1.0.0] - Initial release
Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
2+
import 'package:retry/retry.dart';
23

34
import 'firebase_http_file_service.dart';
45

@@ -7,12 +8,18 @@ import 'firebase_http_file_service.dart';
78
class FirebaseCacheManager extends CacheManager {
89
static const key = 'firebaseCache';
910

10-
static final FirebaseCacheManager _instance = FirebaseCacheManager._();
11+
static final FirebaseCacheManager _instance = FirebaseCacheManager._(null);
12+
13+
final RetryOptions? retryOptions;
1114

1215
factory FirebaseCacheManager() {
1316
return _instance;
1417
}
1518

16-
FirebaseCacheManager._()
19+
FirebaseCacheManager.retry({this.retryOptions = const RetryOptions()})
20+
: super(Config(key,
21+
fileService: FirebaseHttpFileService(retryOptions: retryOptions)));
22+
23+
FirebaseCacheManager._(this.retryOptions)
1724
: super(Config(key, fileService: FirebaseHttpFileService()));
1825
}
Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,31 @@
11
import 'package:firebase_storage/firebase_storage.dart';
22
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
3+
import 'package:retry/retry.dart';
34

45
/// [FirebaseHttpFileService] is another common file service which parses a
56
/// firebase reference into, to standard url which can be passed to the
67
/// standard [HttpFileService].
78
class FirebaseHttpFileService extends HttpFileService {
9+
final RetryOptions? retryOptions;
10+
11+
FirebaseHttpFileService({
12+
this.retryOptions,
13+
});
14+
815
@override
916
Future<FileServiceResponse> get(String url,
1017
{Map<String, String>? headers}) async {
1118
var ref = FirebaseStorage.instance.ref().child(url);
12-
var downloadUrl = await ref.getDownloadURL();
1319

20+
String downloadUrl;
21+
if (retryOptions != null) {
22+
downloadUrl = await retryOptions!.retry(
23+
() async => await ref.getDownloadURL(),
24+
retryIf: (e) => e is FirebaseException,
25+
);
26+
} else {
27+
downloadUrl = await ref.getDownloadURL();
28+
}
1429
return super.get(downloadUrl);
1530
}
1631
}

flutter_cache_manager_firebase/pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ dependencies:
1313
firebase_storage: '>=12.0.0 <13.0.0'
1414
path_provider: ^2.1.2
1515
path: ^1.9.0
16+
retry: ^3.1.2
1617

1718
dev_dependencies:
1819
flutter_lints: ^4.0.0

0 commit comments

Comments
 (0)