File tree Expand file tree Collapse file tree 3 files changed +31
-12
lines changed
flutter_cache_manager_firebase Expand file tree Collapse file tree 3 files changed +31
-12
lines changed Original file line number Diff line number Diff line change @@ -6,9 +6,16 @@ A Firebase implementation for [flutter_cache_manager](https://pub.dev/packages/f
66
77This library contains FirebaseCacheManager and FirebaseHttpFileService.
88
9- You can easily fetch a file stored on Firebase with
9+ You can easily fetch a file stored on Firebase with
1010``` dart
1111var file = await FirebaseCacheManager().getSingleFile(url);
1212```
1313
14- You could also write your own CacheManager which uses the FirebaseHttpFileService.
14+ You could also write your own CacheManager which uses the FirebaseHttpFileService.
15+
16+ ### Custom Firebase storage bucket
17+
18+ You can use a custom bucket by passing ` bucket ` parameter. For example:
19+ ``` dart
20+ FirebaseCacheManager(bucket: "my-bucket");
21+ ```
Original file line number Diff line number Diff line change @@ -8,18 +8,21 @@ import 'firebase_http_file_service.dart';
88class FirebaseCacheManager extends CacheManager {
99 static const key = 'firebaseCache' ;
1010
11- static final FirebaseCacheManager _instance = FirebaseCacheManager ._(null );
11+ static final FirebaseCacheManager _instance =
12+ FirebaseCacheManager ._(retryOptions: retryOptions, bucket: bucket);
1213
13- final RetryOptions ? retryOptions;
14+ static RetryOptions ? retryOptions;
1415
15- factory FirebaseCacheManager () {
16+ static String ? bucket;
17+
18+ factory FirebaseCacheManager ({RetryOptions ? retryOptions, String ? bucket}) {
19+ bucket = bucket;
20+ retryOptions = retryOptions;
1621 return _instance;
1722 }
1823
19- FirebaseCacheManager .retry ({ this . retryOptions = const RetryOptions () })
24+ FirebaseCacheManager ._({ RetryOptions ? retryOptions, String ? bucket })
2025 : super (Config (key,
21- fileService: FirebaseHttpFileService (retryOptions: retryOptions)));
22-
23- FirebaseCacheManager ._(this .retryOptions)
24- : super (Config (key, fileService: FirebaseHttpFileService ()));
26+ fileService: FirebaseHttpFileService (
27+ retryOptions: retryOptions, bucket: bucket)));
2528}
Original file line number Diff line number Diff line change @@ -10,12 +10,21 @@ class FirebaseHttpFileService extends HttpFileService {
1010
1111 FirebaseHttpFileService ({
1212 this .retryOptions,
13- });
13+ this .bucket,
14+ }) : super ();
15+
16+ final String ? bucket;
1417
1518 @override
1619 Future <FileServiceResponse > get (String url,
1720 {Map <String , String >? headers}) async {
18- var ref = FirebaseStorage .instance.ref ().child (url);
21+ late Reference ref;
22+ if (bucket != null ) {
23+ ref =
24+ FirebaseStorage .instanceFor (bucket: "gs://$bucket " ).ref ().child (url);
25+ } else {
26+ ref = FirebaseStorage .instance.ref ().child (url);
27+ }
1928
2029 String downloadUrl;
2130 if (retryOptions != null ) {
You can’t perform that action at this time.
0 commit comments