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
6
6
7
7
This library contains FirebaseCacheManager and FirebaseHttpFileService.
8
8
9
- You can easily fetch a file stored on Firebase with
9
+ You can easily fetch a file stored on Firebase with
10
10
``` dart
11
11
var file = await FirebaseCacheManager().getSingleFile(url);
12
12
```
13
13
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';
8
8
class FirebaseCacheManager extends CacheManager {
9
9
static const key = 'firebaseCache' ;
10
10
11
- static final FirebaseCacheManager _instance = FirebaseCacheManager ._(null );
11
+ static final FirebaseCacheManager _instance =
12
+ FirebaseCacheManager ._(retryOptions: retryOptions, bucket: bucket);
12
13
13
- final RetryOptions ? retryOptions;
14
+ static RetryOptions ? retryOptions;
14
15
15
- factory FirebaseCacheManager () {
16
+ static String ? bucket;
17
+
18
+ factory FirebaseCacheManager ({RetryOptions ? retryOptions, String ? bucket}) {
19
+ bucket = bucket;
20
+ retryOptions = retryOptions;
16
21
return _instance;
17
22
}
18
23
19
- FirebaseCacheManager .retry ({ this . retryOptions = const RetryOptions () })
24
+ FirebaseCacheManager ._({ RetryOptions ? retryOptions, String ? bucket })
20
25
: 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)));
25
28
}
Original file line number Diff line number Diff line change @@ -10,12 +10,21 @@ class FirebaseHttpFileService extends HttpFileService {
10
10
11
11
FirebaseHttpFileService ({
12
12
this .retryOptions,
13
- });
13
+ this .bucket,
14
+ }) : super ();
15
+
16
+ final String ? bucket;
14
17
15
18
@override
16
19
Future <FileServiceResponse > get (String url,
17
20
{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
+ }
19
28
20
29
String downloadUrl;
21
30
if (retryOptions != null ) {
You can’t perform that action at this time.
0 commit comments