@@ -61,81 +61,101 @@ public void onCatalystInstanceDestroy() {
61
61
*/
62
62
@ ReactMethod
63
63
public void delete (String appName , String url , final Promise promise ) {
64
- StorageReference reference = getReferenceFromUrl (url , appName );
65
- reference .delete ().addOnCompleteListener (task -> {
66
- if (task .isSuccessful ()) {
67
- promise .resolve (null );
68
- } else {
69
- promiseRejectStorageException (promise , Objects .requireNonNull (task .getException ()));
70
- }
71
- });
64
+ try {
65
+ StorageReference reference = getReferenceFromUrl (url , appName );
66
+ reference .delete ().addOnCompleteListener (task -> {
67
+ if (task .isSuccessful ()) {
68
+ promise .resolve (null );
69
+ } else {
70
+ promiseRejectStorageException (promise , Objects .requireNonNull (task .getException ()));
71
+ }
72
+ });
73
+ } catch (Exception e ) {
74
+ promiseRejectStorageException (promise , e );
75
+ }
72
76
}
73
77
74
78
/**
75
79
* @url https://firebase.google.com/docs/reference/js/firebase.storage.Reference#getDownloadURL
76
80
*/
77
81
@ ReactMethod
78
82
public void getDownloadURL (String appName , final String url , final Promise promise ) {
79
- StorageReference reference = getReferenceFromUrl (url , appName );
80
- Task <Uri > downloadTask = reference .getDownloadUrl ();
81
-
82
- downloadTask .addOnCompleteListener (task -> {
83
- if (task .isSuccessful ()) {
84
- promise .resolve (task .getResult () != null ? task .getResult ().toString () : null );
85
- } else {
86
- promiseRejectStorageException (promise , task .getException ());
87
- }
88
- });
83
+ try {
84
+ StorageReference reference = getReferenceFromUrl (url , appName );
85
+ Task <Uri > downloadTask = reference .getDownloadUrl ();
86
+
87
+ downloadTask .addOnCompleteListener (task -> {
88
+ if (task .isSuccessful ()) {
89
+ promise .resolve (task .getResult () != null ? task .getResult ().toString () : null );
90
+ } else {
91
+ promiseRejectStorageException (promise , task .getException ());
92
+ }
93
+ });
94
+ } catch (Exception e ) {
95
+ promiseRejectStorageException (promise , e );
96
+ }
89
97
}
90
98
91
99
/**
92
100
* @url https://firebase.google.com/docs/reference/js/firebase.storage.Reference#getMetadata
93
101
*/
94
102
@ ReactMethod
95
103
public void getMetadata (String appName , String url , Promise promise ) {
96
- StorageReference reference = getReferenceFromUrl (url , appName );
97
- reference .getMetadata ().addOnCompleteListener (getExecutor (), task -> {
98
- if (task .isSuccessful ()) {
99
- promise .resolve (getMetadataAsMap (task .getResult ()));
100
- } else {
101
- promiseRejectStorageException (promise , task .getException ());
102
- }
103
- });
104
+ try {
105
+ StorageReference reference = getReferenceFromUrl (url , appName );
106
+ reference .getMetadata ().addOnCompleteListener (getExecutor (), task -> {
107
+ if (task .isSuccessful ()) {
108
+ promise .resolve (getMetadataAsMap (task .getResult ()));
109
+ } else {
110
+ promiseRejectStorageException (promise , task .getException ());
111
+ }
112
+ });
113
+ } catch (Exception e ) {
114
+ promiseRejectStorageException (promise , e );
115
+ }
104
116
}
105
117
106
118
@ ReactMethod
107
119
public void list (String appName , String url , ReadableMap listOptions , Promise promise ) {
108
- StorageReference reference = getReferenceFromUrl (url , appName );
109
- Task <ListResult > list ;
120
+ try {
121
+ StorageReference reference = getReferenceFromUrl (url , appName );
122
+ Task <ListResult > list ;
110
123
111
- int maxResults = listOptions .getInt ("maxResults" );
112
-
113
- if (listOptions .hasKey ("pageToken" )) {
114
- String pageToken = listOptions .getString ("pageToken" );
115
- list = reference .list (maxResults , Objects .requireNonNull (pageToken ));
116
- } else {
117
- list = reference .list (maxResults );
118
- }
124
+ int maxResults = listOptions .getInt ("maxResults" );
119
125
120
- list . addOnCompleteListener ( getExecutor (), task -> {
121
- if ( task . isSuccessful ()) {
122
- promise . resolve ( getListResultAsMap ( task . getResult () ));
126
+ if ( listOptions . hasKey ( "pageToken" )) {
127
+ String pageToken = listOptions . getString ( "pageToken" );
128
+ list = reference . list ( maxResults , Objects . requireNonNull ( pageToken ));
123
129
} else {
124
- promiseRejectStorageException ( promise , task . getException () );
130
+ list = reference . list ( maxResults );
125
131
}
126
- });
132
+
133
+ list .addOnCompleteListener (getExecutor (), task -> {
134
+ if (task .isSuccessful ()) {
135
+ promise .resolve (getListResultAsMap (task .getResult ()));
136
+ } else {
137
+ promiseRejectStorageException (promise , task .getException ());
138
+ }
139
+ });
140
+ } catch (Exception e ) {
141
+ promiseRejectStorageException (promise , e );
142
+ }
127
143
}
128
144
129
145
@ ReactMethod
130
146
public void listAll (String appName , String url , Promise promise ) {
131
- StorageReference reference = getReferenceFromUrl (url , appName );
132
- reference .listAll ().addOnCompleteListener (getExecutor (), task -> {
133
- if (task .isSuccessful ()) {
134
- promise .resolve (getListResultAsMap (task .getResult ()));
135
- } else {
136
- promiseRejectStorageException (promise , task .getException ());
137
- }
138
- });
147
+ try {
148
+ StorageReference reference = getReferenceFromUrl (url , appName );
149
+ reference .listAll ().addOnCompleteListener (getExecutor (), task -> {
150
+ if (task .isSuccessful ()) {
151
+ promise .resolve (getListResultAsMap (task .getResult ()));
152
+ } else {
153
+ promiseRejectStorageException (promise , task .getException ());
154
+ }
155
+ });
156
+ } catch (Exception e ) {
157
+ promiseRejectStorageException (promise , e );
158
+ }
139
159
}
140
160
141
161
/**
@@ -148,16 +168,20 @@ public void updateMetadata(
148
168
ReadableMap metadataMap ,
149
169
final Promise promise
150
170
) {
151
- StorageReference reference = getReferenceFromUrl (url , appName );
152
- StorageMetadata metadata = buildMetadataFromMap (metadataMap , null );
153
-
154
- reference .updateMetadata (metadata ).addOnCompleteListener (getExecutor (), task -> {
155
- if (task .isSuccessful ()) {
156
- promise .resolve (getMetadataAsMap (task .getResult ()));
157
- } else {
158
- promiseRejectStorageException (promise , task .getException ());
159
- }
160
- });
171
+ try {
172
+ StorageReference reference = getReferenceFromUrl (url , appName );
173
+ StorageMetadata metadata = buildMetadataFromMap (metadataMap , null );
174
+
175
+ reference .updateMetadata (metadata ).addOnCompleteListener (getExecutor (), task -> {
176
+ if (task .isSuccessful ()) {
177
+ promise .resolve (getMetadataAsMap (task .getResult ()));
178
+ } else {
179
+ promiseRejectStorageException (promise , task .getException ());
180
+ }
181
+ });
182
+ } catch (Exception e ) {
183
+ promiseRejectStorageException (promise , e );
184
+ }
161
185
}
162
186
163
187
/**
@@ -214,15 +238,18 @@ public void writeToFile(
214
238
);
215
239
return ;
216
240
}
217
-
218
- StorageReference reference = getReferenceFromUrl (url , appName );
219
- ReactNativeFirebaseStorageDownloadTask storageTask = new ReactNativeFirebaseStorageDownloadTask (
220
- taskId ,
221
- reference ,
222
- appName
223
- );
224
- storageTask .begin (getTransactionalExecutor (), localFilePath );
225
- storageTask .addOnCompleteListener (getTransactionalExecutor (), promise );
241
+ try {
242
+ StorageReference reference = getReferenceFromUrl (url , appName );
243
+ ReactNativeFirebaseStorageDownloadTask storageTask = new ReactNativeFirebaseStorageDownloadTask (
244
+ taskId ,
245
+ reference ,
246
+ appName
247
+ );
248
+ storageTask .begin (getTransactionalExecutor (), localFilePath );
249
+ storageTask .addOnCompleteListener (getTransactionalExecutor (), promise );
250
+ } catch (Exception e ) {
251
+ promiseRejectStorageException (promise , e );
252
+ }
226
253
}
227
254
228
255
/**
@@ -238,14 +265,18 @@ public void putString(
238
265
int taskId ,
239
266
Promise promise
240
267
) {
241
- StorageReference reference = getReferenceFromUrl (url , appName );
242
- ReactNativeFirebaseStorageUploadTask storageTask = new ReactNativeFirebaseStorageUploadTask (
243
- taskId ,
244
- reference ,
245
- appName
246
- );
247
- storageTask .begin (getTransactionalExecutor (), string , format , metadataMap );
248
- storageTask .addOnCompleteListener (getTransactionalExecutor (),promise );
268
+ try {
269
+ StorageReference reference = getReferenceFromUrl (url , appName );
270
+ ReactNativeFirebaseStorageUploadTask storageTask = new ReactNativeFirebaseStorageUploadTask (
271
+ taskId ,
272
+ reference ,
273
+ appName
274
+ );
275
+ storageTask .begin (getTransactionalExecutor (), string , format , metadataMap );
276
+ storageTask .addOnCompleteListener (getTransactionalExecutor (),promise );
277
+ } catch (Exception e ) {
278
+ promiseRejectStorageException (promise , e );
279
+ }
249
280
}
250
281
251
282
/**
@@ -260,14 +291,18 @@ public void putFile(
260
291
int taskId ,
261
292
Promise promise
262
293
) {
263
- StorageReference reference = getReferenceFromUrl (url , appName );
264
- ReactNativeFirebaseStorageUploadTask storageTask = new ReactNativeFirebaseStorageUploadTask (
265
- taskId ,
266
- reference ,
267
- appName
268
- );
269
- storageTask .begin (getTransactionalExecutor (),localFilePath , metadata );
270
- storageTask .addOnCompleteListener (getTransactionalExecutor (), promise );
294
+ try {
295
+ StorageReference reference = getReferenceFromUrl (url , appName );
296
+ ReactNativeFirebaseStorageUploadTask storageTask = new ReactNativeFirebaseStorageUploadTask (
297
+ taskId ,
298
+ reference ,
299
+ appName
300
+ );
301
+ storageTask .begin (getTransactionalExecutor (),localFilePath , metadata );
302
+ storageTask .addOnCompleteListener (getTransactionalExecutor (), promise );
303
+ } catch (Exception e ) {
304
+ promiseRejectStorageException (promise , e );
305
+ }
271
306
}
272
307
273
308
@ ReactMethod
@@ -290,7 +325,7 @@ private String getBucketFromUrl(String url) {
290
325
return url .substring (0 , pathWithBucketName .indexOf ("/" ) + 5 );
291
326
}
292
327
293
- private StorageReference getReferenceFromUrl (String url , String appName ) {
328
+ private StorageReference getReferenceFromUrl (String url , String appName ) throws IllegalArgumentException {
294
329
FirebaseApp firebaseApp = FirebaseApp .getInstance (appName );
295
330
FirebaseStorage firebaseStorage = FirebaseStorage .getInstance (
296
331
firebaseApp ,
0 commit comments