@react-native-firebase/storage 15.6.0 → 15.7.1

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [15.7.1](https://github.com/invertase/react-native-firebase/compare/v15.7.0...v15.7.1) (2022-10-19)
7
+
8
+ **Note:** Version bump only for package @react-native-firebase/storage
9
+
10
+ # [15.7.0](https://github.com/invertase/react-native-firebase/compare/v15.6.0...v15.7.0) (2022-10-01)
11
+
12
+ **Note:** Version bump only for package @react-native-firebase/storage
13
+
6
14
  # [15.6.0](https://github.com/invertase/react-native-firebase/compare/v15.5.0...v15.6.0) (2022-09-17)
7
15
 
8
16
  **Note:** Version bump only for package @react-native-firebase/storage
@@ -8,6 +8,8 @@ firebase_sdk_version = appPackage['sdkVersions']['ios']['firebase']
8
8
  if coreVersionDetected != coreVersionRequired
9
9
  Pod::UI.warn "NPM package '#{package['name']}' depends on '#{appPackage['name']}' v#{coreVersionRequired} but found v#{coreVersionDetected}, this might cause build issues or runtime crashes."
10
10
  end
11
+ firebase_ios_target = appPackage['sdkVersions']['ios']['iosTarget']
12
+ firebase_macos_target = appPackage['sdkVersions']['ios']['macosTarget']
11
13
 
12
14
  Pod::Spec.new do |s|
13
15
  s.name = "RNFBStorage"
@@ -21,7 +23,8 @@ Pod::Spec.new do |s|
21
23
  s.authors = "Invertase Limited"
22
24
  s.source = { :git => "https://github.com/invertase/react-native-firebase.git", :tag => "v#{s.version}" }
23
25
  s.social_media_url = 'http://twitter.com/invertaseio'
24
- s.ios.deployment_target = "10.0"
26
+ s.ios.deployment_target = firebase_ios_target
27
+ s.macos.deployment_target = firebase_macos_target
25
28
  s.source_files = 'ios/**/*.{h,m}'
26
29
 
27
30
  # React Native dependencies
@@ -1,3 +1,5 @@
1
+ import { describe, expect, it } from '@jest/globals';
2
+
1
3
  import storage, { firebase } from '../lib';
2
4
 
3
5
  describe('Storage', function () {
@@ -57,7 +57,8 @@
57
57
  + (NSString *)getTaskStatus:(FIRStorageTaskStatus)status;
58
58
 
59
59
  + (FIRStorageMetadata *)buildMetadataFromMap:(NSDictionary *)metadata
60
- existingMetadata:(FIRStorageMetadata *)existingMetadata;
60
+ existingMetadata:(FIRStorageMetadata *)existingMetadata
61
+ path:(NSString *)path;
61
62
 
62
63
  + (NSArray *)getErrorCodeMessage:(NSError *)error;
63
64
 
@@ -393,11 +393,18 @@
393
393
  }
394
394
 
395
395
  + (FIRStorageMetadata *)buildMetadataFromMap:(NSDictionary *)metadata
396
- existingMetadata:(nullable FIRStorageMetadata *)existingMetadata {
396
+ existingMetadata:(nullable FIRStorageMetadata *)existingMetadata
397
+ path:(NSString *)path {
397
398
  // If an existing metadata was passed in, modify it with our map, otherwise init a fresh copy
398
399
  FIRStorageMetadata *storageMetadata = existingMetadata;
399
400
  if (storageMetadata == nil) {
400
- storageMetadata = [[FIRStorageMetadata alloc] init];
401
+ // NOTE: Firebase iOS SDK 10 requires a "path" property on `FIRStorageMetadata`. We do this by
402
+ // "initWithDictionary()" which uses "name" property as "path" under the hood.
403
+ // See
404
+ // https://github.com/firebase/firebase-ios-sdk/blob/970b4c45098319e40e6e5157d340d16cb73a2b88/FirebaseStorage/Sources/StorageMetadata.swift#L156-L178
405
+ NSMutableDictionary *metadata = [[NSMutableDictionary alloc] init];
406
+ metadata[@"name"] = path;
407
+ storageMetadata = [[FIRStorageMetadata alloc] initWithDictionary:metadata];
401
408
  }
402
409
 
403
410
  if (metadata[@"cacheControl"] == [NSNull null]) {
@@ -35,6 +35,7 @@ static NSMutableDictionary *PENDING_TASKS;
35
35
  // The iOS SDK has a short memory on settings, store these globally and set them in each time
36
36
  static NSString *emulatorHost = nil;
37
37
  static NSInteger emulatorPort = 0;
38
+ static bool useEmulatorCalled = false;
38
39
  static NSTimeInterval maxDownloadRetryTime = 600;
39
40
  static NSTimeInterval maxUploadRetryTime = 600;
40
41
  static NSTimeInterval maxOperationRetryTime = 120;
@@ -150,7 +151,9 @@ RCT_EXPORT_METHOD(updateMetadata
150
151
  [self promiseRejectStorageException:reject error:error];
151
152
  } else {
152
153
  FIRStorageMetadata *storageMetadata =
153
- [RNFBStorageCommon buildMetadataFromMap:metadata existingMetadata:fetchedMetadata];
154
+ [RNFBStorageCommon buildMetadataFromMap:metadata
155
+ existingMetadata:fetchedMetadata
156
+ path:[storageReference fullPath]];
154
157
 
155
158
  [storageReference updateMetadata:storageMetadata
156
159
  completion:^(FIRStorageMetadata *_Nullable updatedMetadata,
@@ -400,9 +403,11 @@ RCT_EXPORT_METHOD(putFile
400
403
  : (nonnull NSNumber *)taskId
401
404
  : (RCTPromiseResolveBlock)resolve
402
405
  : (RCTPromiseRejectBlock)reject) {
403
- FIRStorageMetadata *storageMetadata = [RNFBStorageCommon buildMetadataFromMap:metadata
404
- existingMetadata:nil];
405
406
  FIRStorageReference *storageReference = [self getReferenceFromUrl:url app:firebaseApp];
407
+ FIRStorageMetadata *storageMetadata =
408
+ [RNFBStorageCommon buildMetadataFromMap:metadata
409
+ existingMetadata:nil
410
+ path:[storageReference fullPath]];
406
411
 
407
412
  [RNFBStorageCommon
408
413
  NSURLForLocalFilePath:localFilePath
@@ -472,9 +477,11 @@ RCT_EXPORT_METHOD(putString
472
477
  : (nonnull NSNumber *)taskId
473
478
  : (RCTPromiseResolveBlock)resolve
474
479
  : (RCTPromiseRejectBlock)reject) {
475
- FIRStorageMetadata *storageMetadata = [RNFBStorageCommon buildMetadataFromMap:metadata
476
- existingMetadata:nil];
477
480
  FIRStorageReference *storageReference = [self getReferenceFromUrl:url app:firebaseApp];
481
+ FIRStorageMetadata *storageMetadata =
482
+ [RNFBStorageCommon buildMetadataFromMap:metadata
483
+ existingMetadata:nil
484
+ path:[storageReference fullPath]];
478
485
 
479
486
  __block FIRStorageUploadTask *uploadTask;
480
487
  RCTUnsafeExecuteOnMainQueueSync(^{
@@ -499,7 +506,12 @@ RCT_EXPORT_METHOD(useEmulator
499
506
  : (NSInteger)port) {
500
507
  emulatorHost = host;
501
508
  emulatorPort = port;
509
+ if (useEmulatorCalled == true) {
510
+ return;
511
+ }
512
+
502
513
  [[FIRStorage storageForApp:firebaseApp] useEmulatorWithHost:host port:port];
514
+ useEmulatorCalled = true;
503
515
  }
504
516
 
505
517
  /**
@@ -657,9 +669,10 @@ RCT_EXPORT_METHOD(setTaskStatus
657
669
  storage = [FIRStorage storageForApp:firebaseApp URL:bucket];
658
670
 
659
671
  NSLog(@"Setting emulator - host %@ port %ld", emulatorHost, (long)emulatorPort);
660
- if (![emulatorHost isEqual:[NSNull null]] && emulatorHost != nil) {
672
+ if (![emulatorHost isEqual:[NSNull null]] && emulatorHost != nil && useEmulatorCalled == false) {
661
673
  @try {
662
674
  [storage useEmulatorWithHost:emulatorHost port:emulatorPort];
675
+ useEmulatorCalled = true;
663
676
  } @catch (NSException *e) {
664
677
  NSLog(@"WARNING: Unable to set the Firebase Storage emulator settings. These must be set "
665
678
  @"before any usages of Firebase Storage. If you see this log after a hot "
package/lib/version.js CHANGED
@@ -1,2 +1,2 @@
1
1
  // Generated by genversion.
2
- module.exports = '15.6.0';
2
+ module.exports = '15.7.1';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-native-firebase/storage",
3
- "version": "15.6.0",
3
+ "version": "15.7.1",
4
4
  "author": "Invertase <oss@invertase.io> (http://invertase.io)",
5
5
  "description": "React Native Firebase - React Native Firebase provides native integration with Cloud Storage, providing support to upload and download files directly from your device and from your Firebase Cloud Storage bucket.",
6
6
  "main": "lib/index.js",
@@ -29,10 +29,10 @@
29
29
  "download"
30
30
  ],
31
31
  "peerDependencies": {
32
- "@react-native-firebase/app": "15.6.0"
32
+ "@react-native-firebase/app": "15.7.1"
33
33
  },
34
34
  "publishConfig": {
35
35
  "access": "public"
36
36
  },
37
- "gitHead": "09edad10f28d4d2e0a471aa075c6f004826e1331"
37
+ "gitHead": "7845819f67e955d75b5756d30c2f5b55a68c9062"
38
38
  }