Skip to content

Commit 516dff8

Browse files
minhdanhmartijn00
authored andcommitted
Support bucket
1 parent 0f05da6 commit 516dff8

File tree

2 files changed

+22
-10
lines changed

2 files changed

+22
-10
lines changed

flutter_cache_manager_firebase/lib/src/firebase_cache_manager.dart

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,21 @@ import 'firebase_http_file_service.dart';
88
class 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
}

flutter_cache_manager_firebase/lib/src/firebase_http_file_service.dart

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff 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) {

0 commit comments

Comments
 (0)