@react-native-firebase/storage 26.4.0 → 27.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/RNFBStorage.podspec +9 -4
  3. package/android/build.gradle +3 -0
  4. package/android/src/main/java/io/invertase/firebase/storage/RNFBStorageTaskRegistry.kt +88 -0
  5. package/android/src/test/java/io/invertase/firebase/storage/RNFBStorageTaskRegistryTest.java +25 -0
  6. package/dist/module/index.js +1 -2
  7. package/dist/module/index.js.map +1 -1
  8. package/dist/module/version.js +1 -1
  9. package/dist/typescript/lib/index.d.ts +1 -1
  10. package/dist/typescript/lib/types/internal.d.ts +2 -3
  11. package/dist/typescript/lib/types/internal.d.ts.map +1 -1
  12. package/dist/typescript/lib/version.d.ts +1 -1
  13. package/ios/RNFBStorage/RNFBStorageCommon.m +17 -98
  14. package/ios/RNFBStorage/RNFBStorageErrorCodeMapper.swift +122 -0
  15. package/ios/RNFBStorage/RNFBStorageErrorSnapshotDictBuilder.swift +70 -0
  16. package/ios/RNFBStorage/RNFBStorageTaskRegistry.m +28 -35
  17. package/ios/RNFBStorage/RNFBStorageTaskRegistryStorage.swift +87 -0
  18. package/ios/RNFBStorage/RNFBStorageTaskStatusMapper.swift +57 -0
  19. package/ios/RNFBStorage.xcodeproj/project.pbxproj +26 -0
  20. package/ios/RNFBStorageUnitTests/RNFBStorageErrorCodeMapperFacadeTests.m +91 -0
  21. package/ios/RNFBStorageUnitTests/RNFBStorageErrorCodeMapperTests.swift +211 -0
  22. package/ios/RNFBStorageUnitTests/RNFBStorageErrorSnapshotDictBuilderFacadeTests.m +125 -0
  23. package/ios/RNFBStorageUnitTests/RNFBStorageTaskRegistryStorageTests.swift +154 -0
  24. package/ios/RNFBStorageUnitTests/RNFBStorageTaskStatusMapperFacadeTests.m +52 -0
  25. package/ios/RNFBStorageUnitTests/RNFBStorageTaskStatusMapperTests.swift +58 -0
  26. package/ios/RNFBStorageUnitTests/RNFBStorageUnitTests.xcodeproj/project.pbxproj +50 -0
  27. package/lib/index.ts +1 -1
  28. package/lib/types/internal.ts +5 -4
  29. package/lib/version.ts +1 -1
  30. package/package.json +4 -4
  31. package/android/src/main/java/io/invertase/firebase/storage/RNFBStorageTaskRegistry.java +0 -93
package/CHANGELOG.md CHANGED
@@ -3,6 +3,21 @@
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
+ ## [27.0.0](https://github.com/invertase/react-native-firebase/compare/v26.4.0...v27.0.0) (2026-10-19)
7
+
8
+ ### ⚠ BREAKING CHANGES
9
+
10
+ - **app, sdk:** bump Firebase Android 35, Apple 13, and JS 13
11
+
12
+ ### Features
13
+
14
+ - **app, sdk:** bump Firebase Android 35, Apple 13, and JS 13 ([0ca03d1](https://github.com/invertase/react-native-firebase/commit/0ca03d11b0c271fb37cfbee8a0c3074a21969f0b))
15
+
16
+ ### Bug Fixes
17
+
18
+ - **app, storage:** link Photos framework on tvOS ([56f5c1f](https://github.com/invertase/react-native-firebase/commit/56f5c1fcf83bc89d8cd80f019696e13bc96578dd))
19
+ - **app,database:** resolve platform native module when bundlers apply package exports ([959d91f](https://github.com/invertase/react-native-firebase/commit/959d91fc79d7155d1d9a08e1f836789e6e6d6156))
20
+
6
21
  ## [26.4.0](https://github.com/invertase/react-native-firebase/compare/v26.3.3...v26.4.0) (2026-09-05)
7
22
 
8
23
  ### Bug Fixes
@@ -28,18 +28,23 @@ Pod::Spec.new do |s|
28
28
  s.ios.deployment_target = firebase_ios_target
29
29
  s.macos.deployment_target = firebase_macos_target
30
30
  s.tvos.deployment_target = firebase_tvos_target
31
- s.source_files = 'ios/**/*.{h,m,mm,cpp}'
31
+ s.swift_version = '5.10'
32
+ s.source_files = 'ios/**/*.{h,m,mm,cpp,swift}'
32
33
  s.private_header_files = [
33
34
  'ios/RNFBStorage/*.h',
34
35
  'ios/generated/**/*.h',
35
36
  ]
36
- s.exclude_files = 'ios/generated/RCTThirdPartyComponentsProvider.*', 'ios/generated/RCTAppDependencyProvider.*', 'ios/generated/RCTModuleProviders.*', 'ios/generated/RCTModulesConformingToProtocolsProvider.*', 'ios/generated/RCTUnstableModulesRequiringMainQueueSetupProvider.*', 'ios/*UnitTests/**'
37
+ # CocoaPods FileList uses FNM_PATHNAME: `ios/*UnitTests/**` does not match nested
38
+ # paths like `ios/RNFBStorageUnitTests/HostStubs/**` (those would compile into the pod).
39
+ s.exclude_files = 'ios/generated/RCTThirdPartyComponentsProvider.*', 'ios/generated/RCTAppDependencyProvider.*', 'ios/generated/RCTModuleProviders.*', 'ios/generated/RCTModulesConformingToProtocolsProvider.*', 'ios/generated/RCTUnstableModulesRequiringMainQueueSetupProvider.*', 'ios/*UnitTests/**/*'
37
40
 
38
41
  # Must be set before install_modules_dependencies so RN can append use_frameworks
39
42
  # HEADER_SEARCH_PATHS (React-debug etc.). Assigning after overwrites those paths
40
43
  # and breaks from-source builds: react/timing/primitives.h → react/debug/flags.h.
44
+ # DEFINES_MODULE is required for the generated RNFBStorage-Swift.h interface.
41
45
  s.pod_target_xcconfig = {
42
46
  'HEADER_SEARCH_PATHS' => '"$(PODS_TARGET_SRCROOT)/ios/generated/RNFBStorageTurboModules" "$(PODS_TARGET_SRCROOT)/ios/generated"',
47
+ "DEFINES_MODULE" => "YES",
43
48
  "CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES" => "YES",
44
49
  }
45
50
 
@@ -61,10 +66,10 @@ Pod::Spec.new do |s|
61
66
 
62
67
  # RNFBStorageCommon.m uses PHAsset/PHAssetResource (Photos.framework) for local
63
68
  # asset uploads. See RNFBApp.podspec for why this must be declared explicitly
64
- # rather than relying on Clang autolinking. iOS/macOS only -- PhotoKit doesn't
65
- # exist on tvOS.
69
+ # rather than relying on Clang autolinking. PhotoKit is available on tvOS 10+.
66
70
  s.ios.frameworks = 'Photos'
67
71
  s.osx.frameworks = 'Photos'
72
+ s.tvos.frameworks = 'Photos'
68
73
 
69
74
  if defined?($RNFirebaseAsStaticFramework)
70
75
  Pod::UI.puts "#{s.name}: Using overridden static_framework value of '#{$RNFirebaseAsStaticFramework}'"
@@ -13,6 +13,7 @@ buildscript {
13
13
 
14
14
  dependencies {
15
15
  classpath("com.android.tools.build:gradle:8.4.0")
16
+ classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${project.findProperty('kotlinVersion') ?: '2.4.0'}")
16
17
  }
17
18
  }
18
19
  }
@@ -21,6 +22,8 @@ plugins {
21
22
  id "io.invertase.gradle.build" version "1.5"
22
23
  }
23
24
 
25
+ apply plugin: "org.jetbrains.kotlin.android"
26
+
24
27
  def appProject
25
28
  if (findProject(':@react-native-firebase_app')) {
26
29
  appProject = project(':@react-native-firebase_app')
@@ -0,0 +1,88 @@
1
+ package io.invertase.firebase.storage
2
+
3
+ /*
4
+ * Copyright (c) 2016-present Invertase Limited & Contributors
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this library except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ */
19
+
20
+ import io.invertase.firebase.common.RNFBHandleCollisionException
21
+ import io.invertase.firebase.common.RNFBHandleMap
22
+ import java.util.function.Predicate
23
+
24
+ /**
25
+ * Pending upload/download task map. Unique [put]; callers [take] or [takeAllAndCancel] then cancel
26
+ * outside the HandleMap lock.
27
+ */
28
+ internal class RNFBStorageTaskRegistry {
29
+ private val map = RNFBHandleMap<Int, StoragePendingHandle?>()
30
+
31
+ @Throws(RNFBHandleCollisionException::class)
32
+ fun put(
33
+ taskId: Int,
34
+ handle: StoragePendingHandle?,
35
+ ) {
36
+ map.put(taskId, handle)
37
+ }
38
+
39
+ /**
40
+ * Unique put. On collision, `cancel()` the incoming handle and leave the existing mapping.
41
+ *
42
+ * @return true if stored
43
+ */
44
+ fun putOrDiscard(
45
+ taskId: Int,
46
+ handle: StoragePendingHandle?,
47
+ ): Boolean {
48
+ if (map.putIfAbsent(taskId, handle)) {
49
+ return true
50
+ }
51
+ handle?.cancel()
52
+ return false
53
+ }
54
+
55
+ fun get(taskId: Int): StoragePendingHandle? = map.get(taskId)
56
+
57
+ fun take(taskId: Int): StoragePendingHandle? = map.take(taskId)
58
+
59
+ fun takeIf(
60
+ taskId: Int,
61
+ shouldTake: Predicate<StoragePendingHandle?>,
62
+ ): StoragePendingHandle? = map.takeIf(taskId, shouldTake)
63
+
64
+ /**
65
+ * Cancel outside the HandleMap lock; remove the mapping only when cancel succeeds. Returns `false`
66
+ * when no mapping existed or cancel failed. Trailing unregister is identity-gated so a
67
+ * replacement put after `cancel()` (e.g. production `destroyTask`) is not stolen.
68
+ *
69
+ * Shape: get → cancel → identity takeIf on success (keep mapping when cancel returns false). iOS
70
+ * registry mirrors get → cancel → identity takeIf, but FIRStorage cancel is void so there is no
71
+ * keep-on-false path — see `RNFBStorageTaskRegistry.takeAndCancel:` / helper `setTaskStatus`.
72
+ */
73
+ fun takeAndCancel(taskId: Int): Boolean {
74
+ val handle = map.get(taskId) ?: return false
75
+ val cancelled = handle.cancel()
76
+ if (cancelled) {
77
+ map.takeIf(taskId) { h -> h === handle }
78
+ }
79
+ return cancelled
80
+ }
81
+
82
+ fun takeAllAndCancel() {
83
+ val remaining = map.takeAll()
84
+ for (handle in remaining) {
85
+ handle?.cancel()
86
+ }
87
+ }
88
+ }
@@ -115,6 +115,31 @@ public class RNFBStorageTaskRegistryTest {
115
115
  assertSame(first, registry.get(4));
116
116
  }
117
117
 
118
+ @Test
119
+ public void takeIf_whenPredicateTrue_removesAndReturns() throws Exception {
120
+ RNFBStorageTaskRegistry registry = new RNFBStorageTaskRegistry();
121
+ FakeHandle handle = new FakeHandle();
122
+ registry.put(8, handle);
123
+ assertSame(handle, registry.takeIf(8, h -> h == handle));
124
+ assertNull(registry.get(8));
125
+ }
126
+
127
+ @Test
128
+ public void takeIf_whenPredicateFalse_leavesMapping() throws Exception {
129
+ RNFBStorageTaskRegistry registry = new RNFBStorageTaskRegistry();
130
+ FakeHandle handle = new FakeHandle();
131
+ FakeHandle other = new FakeHandle();
132
+ registry.put(9, handle);
133
+ assertNull(registry.takeIf(9, h -> h == other));
134
+ assertSame(handle, registry.get(9));
135
+ }
136
+
137
+ @Test
138
+ public void takeIf_whenMissing_returnsNull() {
139
+ RNFBStorageTaskRegistry registry = new RNFBStorageTaskRegistry();
140
+ assertNull(registry.takeIf(99, h -> true));
141
+ }
142
+
118
143
  @Test
119
144
  public void takeAndCancel_cancelsAfterTake() throws Exception {
120
145
  RNFBStorageTaskRegistry registry = new RNFBStorageTaskRegistry();
@@ -18,12 +18,11 @@
18
18
  */
19
19
 
20
20
  import { isAndroid, isNumber, isString } from '@react-native-firebase/app/dist/module/common';
21
- import { FirebaseModule, getOrCreateModularInstance } from '@react-native-firebase/app/dist/module/internal';
21
+ import { FirebaseModule, getOrCreateModularInstance, setReactNativeModule } from '@react-native-firebase/app/dist/module/internal';
22
22
  import Reference from "./StorageReference.js";
23
23
  import { getGsUrlParts, getHttpUrlParts, handleStorageEvent } from "./utils.js";
24
24
  import { version } from "./version.js";
25
25
  import fallBackModule from './web/RNFBStorageModule';
26
- import { setReactNativeModule } from '@react-native-firebase/app/dist/module/internal/nativeModule';
27
26
  import "./types/internal.js";
28
27
  const nativeEvents = ['storage_event'];
29
28
  const nativeModuleName = 'NativeRNFBTurboStorage';
@@ -1 +1 @@
1
- {"version":3,"names":["isAndroid","isNumber","isString","FirebaseModule","getOrCreateModularInstance","Reference","getGsUrlParts","getHttpUrlParts","handleStorageEvent","version","fallBackModule","setReactNativeModule","nativeEvents","nativeModuleName","config","namespace","hasMultiAppSupport","hasCustomUrlOrRegionSupport","disablePrependCustomUrlOrRegion","turboModule","FirebaseStorageModule","constructor","app","bucketUrl","undefined","_customUrlOrRegion","options","storageBucket","startsWith","Error","storageEvent","emitter","addListener","eventNameForApp","bind","emulatorHost","emulatorPort","_maxUploadRetryTime","native","maxUploadRetryTime","_maxDownloadRetryTime","maxDownloadRetryTime","_maxOperationRetryTime","maxOperationRetryTime","ref","path","refFromURL","url","bucket","parts","storageInstance","setMaxOperationRetryTime","time","setMaxUploadRetryTime","setMaxDownloadRetryTime","useEmulator","host","port","_options","_host","androidBypassEmulatorUrlRemap","firebaseJson","android_bypass_emulator_url_remap","console","log","SDK_VERSION","getStorage","StringFormat","TaskEvent","TaskState","isUrl","test","decodeURIComponent","connectStorageEmulator","storage","storageOrRef","fullPath","child","deleteObject","storageRef","delete","getBlob","_storageRef","_maxDownloadSizeBytes","getBytes","getDownloadURL","getMetadata","getStream","list","result","nextPageToken","listAll","updateMetadata","metadata","uploadBytes","_data","_metadata","uploadBytesResumable","data","put","uploadString","format","putString","putFile","filePath","writeToFile"],"sourceRoot":"../../lib","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,QAAQ,+CAA+C;AAE7F,SACEC,cAAc,EACdC,0BAA0B,QACrB,iDAAiD;AAGxD,OAAOC,SAAS,MAAM,uBAAoB;AAC1C,SAASC,aAAa,EAAEC,eAAe,EAAEC,kBAAkB,QAAQ,YAAS;AAC5E,SAASC,OAAO,QAAQ,cAAW;AACnC,OAAOC,cAAc,MAAM,yBAAyB;AACpD,SAASC,oBAAoB,QAAQ,8DAA8D;AACnG,OAAO,qBAAkB;AAgBzB,MAAMC,YAAY,GAAG,CAAC,eAAe,CAAC;AACtC,MAAMC,gBAAgB,GAAG,wBAAwB;AAEjD,MAAMC,MAAoB,GAAG;EAC3BC,SAAS,EAAE,SAAS;EACpBH,YAAY;EACZC,gBAAgB;EAChBG,kBAAkB,EAAE,IAAI;EACxBC,2BAA2B,EAAE,IAAI;EACjCC,+BAA+B,EAAE,IAAI;EACrCC,WAAW,EAAE;AACf,CAAC;AAED,MAAMC,qBAAqB,SAASjB,cAAc,CAA0B;EAO1EkB,WAAWA,CACTC,GAAwC,EACxCR,MAAoB,EACpBS,SAAyB,EACzB;IACA,KAAK,CAACD,GAAG,EAAER,MAAM,EAAES,SAAS,IAAIC,SAAS,CAAC;IAC1C,IAAID,SAAS,IAAI,IAAI,EAAE;MACrB,IAAI,CAACE,kBAAkB,GAAG,QAAQH,GAAG,CAACI,OAAO,CAACC,aAAa,EAAE;IAC/D,CAAC,MAAM,IAAI,CAACzB,QAAQ,CAACqB,SAAS,CAAC,IAAI,CAACA,SAAS,CAACK,UAAU,CAAC,OAAO,CAAC,EAAE;MACjE,MAAM,IAAIC,KAAK,CACb,8EACF,CAAC;IACH;IAEA,MAAMC,YAAY,GAAGlB,YAAY,CAAC,CAAC,CAAC;IAEpC,IAAI,CAACkB,YAAY,EAAE;MACjB,MAAM,IAAID,KAAK,CAAC,8CAA8C,CAAC;IACjE;IAEA,IAAI,CAACE,OAAO,CAACC,WAAW,CACtB,IAAI,CAACC,eAAe,CAACH,YAAY,CAAC,EAClCtB,kBAAkB,CAAC0B,IAAI,CAAC,IAAI,EAAE,IAAI,CACpC,CAAC;;IAED;IACA,IAAI,CAACC,YAAY,GAAGX,SAAS;IAC7B,IAAI,CAACY,YAAY,GAAG,CAAC;IACrB,IAAI,CAACC,mBAAmB,GAAG,IAAI,CAACC,MAAM,CAACC,kBAAkB,IAAI,CAAC;IAC9D,IAAI,CAACC,qBAAqB,GAAG,IAAI,CAACF,MAAM,CAACG,oBAAoB,IAAI,CAAC;IAClE,IAAI,CAACC,sBAAsB,GAAG,IAAI,CAACJ,MAAM,CAACK,qBAAqB,IAAI,CAAC;EACtE;;EAEA;AACF;AACA;EACE,IAAIJ,kBAAkBA,CAAA,EAAW;IAC/B,OAAO,IAAI,CAACF,mBAAmB;EACjC;;EAEA;AACF;AACA;EACE,IAAII,oBAAoBA,CAAA,EAAW;IACjC,OAAO,IAAI,CAACD,qBAAqB;EACnC;;EAEA;AACF;AACA;EACE,IAAIG,qBAAqBA,CAAA,EAAW;IAClC,OAAO,IAAI,CAACD,sBAAsB;EACpC;;EAEA;AACF;AACA;EACEE,GAAGA,CAACC,IAAY,GAAG,GAAG,EAAa;IACjC,IAAI,CAAC3C,QAAQ,CAAC2C,IAAI,CAAC,EAAE;MACnB,MAAM,IAAIhB,KAAK,CAAC,0DAA0D,CAAC;IAC7E;IACA,OAAO,IAAIxB,SAAS,CAAC,IAAI,EAAEwC,IAAI,CAAC;EAClC;;EAEA;AACF;AACA;EACEC,UAAUA,CAACC,GAAW,EAAa;IACjC,IAAI,CAAC7C,QAAQ,CAAC6C,GAAG,CAAC,IAAK,CAACA,GAAG,CAACnB,UAAU,CAAC,OAAO,CAAC,IAAI,CAACmB,GAAG,CAACnB,UAAU,CAAC,MAAM,CAAE,EAAE;MAC3E,MAAM,IAAIC,KAAK,CACb,qGACF,CAAC;IACH;IAEA,IAAIgB,IAAY;IAChB,IAAIG,MAAc;IAElB,IAAID,GAAG,CAACnB,UAAU,CAAC,MAAM,CAAC,EAAE;MAC1B,MAAMqB,KAAK,GAAG1C,eAAe,CAACwC,GAAG,CAAC;MAClC,IAAI,CAACE,KAAK,EAAE;QACV,MAAM,IAAIpB,KAAK,CACb,2FACF,CAAC;MACH;MACA,CAAC;QAAEmB,MAAM;QAAEH;MAAK,CAAC,GAAGI,KAAK;IAC3B,CAAC,MAAM;MACL,CAAC;QAAED,MAAM;QAAEH;MAAK,CAAC,GAAGvC,aAAa,CAACyC,GAAG,CAAC;IACxC;IAEA,MAAMG,eAAe,GAAG9C,0BAA0B,CAChDgB,qBAAqB,EACrBN,MAAM,EACN,IAAI,CAACQ,GAAG,EACR0B,MACF,CAA+B;IAC/B,OAAO,IAAI3C,SAAS,CAAC6C,eAAe,EAAEL,IAAI,CAAC;EAC7C;;EAEA;AACF;AACA;EACEM,wBAAwBA,CAACC,IAAY,EAAiB;IACpD,IAAI,CAACnD,QAAQ,CAACmD,IAAI,CAAC,EAAE;MACnB,MAAM,IAAIvB,KAAK,CACb,+EACF,CAAC;IACH;IAEA,IAAI,CAACa,sBAAsB,GAAGU,IAAI;IAClC,OAAO,IAAI,CAACd,MAAM,CAACa,wBAAwB,CAACC,IAAI,CAAC;EACnD;;EAEA;AACF;AACA;EACEC,qBAAqBA,CAACD,IAAY,EAAiB;IACjD,IAAI,CAACnD,QAAQ,CAACmD,IAAI,CAAC,EAAE;MACnB,MAAM,IAAIvB,KAAK,CAAC,4EAA4E,CAAC;IAC/F;IAEA,IAAI,CAACQ,mBAAmB,GAAGe,IAAI;IAC/B,OAAO,IAAI,CAACd,MAAM,CAACe,qBAAqB,CAACD,IAAI,CAAC;EAChD;;EAEA;AACF;AACA;EACEE,uBAAuBA,CAACF,IAAY,EAAiB;IACnD,IAAI,CAACnD,QAAQ,CAACmD,IAAI,CAAC,EAAE;MACnB,MAAM,IAAIvB,KAAK,CACb,8EACF,CAAC;IACH;IAEA,IAAI,CAACW,qBAAqB,GAAGY,IAAI;IACjC,OAAO,IAAI,CAACd,MAAM,CAACgB,uBAAuB,CAACF,IAAI,CAAC;EAClD;EAEAG,WAAWA,CAACC,IAAY,EAAEC,IAAY,EAAEC,QAAmC,EAAQ;IACjF,IAAI,CAACF,IAAI,IAAI,CAACtD,QAAQ,CAACsD,IAAI,CAAC,IAAI,CAACC,IAAI,IAAI,CAACxD,QAAQ,CAACwD,IAAI,CAAC,EAAE;MACxD,MAAM,IAAI5B,KAAK,CAAC,kEAAkE,CAAC;IACrF;IAEA,IAAI8B,KAAK,GAAGH,IAAI;IAEhB,MAAMI,6BAA6B,GACjC,OAAO,IAAI,CAACC,YAAY,CAACC,iCAAiC,KAAK,SAAS,IACxE,IAAI,CAACD,YAAY,CAACC,iCAAiC;IACrD,IAAI,CAACF,6BAA6B,IAAI5D,SAAS,IAAI2D,KAAK,EAAE;MACxD,IAAIA,KAAK,KAAK,WAAW,IAAIA,KAAK,KAAK,WAAW,EAAE;QAClDA,KAAK,GAAG,UAAU;QAClB;QACAI,OAAO,CAACC,GAAG,CACT,qKACF,CAAC;MACH;IACF;IACA,IAAI,CAAC7B,YAAY,GAAGqB,IAAI;IACxB,IAAI,CAACpB,YAAY,GAAGqB,IAAI;IACxB,IAAI,CAACnB,MAAM,CAACiB,WAAW,CAACI,KAAK,EAAEF,IAAI,EAAE,IAAI,CAAChC,kBAAkB,CAAC;IAC7D;IACA,OAAO,CAACkC,KAAK,EAAEF,IAAI,CAAC;EACtB;AACF;AAEA,OAAO,MAAMQ,WAAW,GAAGxD,OAAO;AAElC,OAAO,SAASyD,UAAUA,CAAC5C,GAAiB,EAAEC,SAAkB,EAAmB;EACjF,OAAOnB,0BAA0B,CAC/BgB,qBAAqB,EACrBN,MAAM,EACNQ,GAAG,EACHC,SACF,CAAC;AACH;AAGA,SAAS4C,YAAY,EAAEC,SAAS,EAAEC,SAAS,QAAQ,qBAAkB;AAErE,SAASC,KAAKA,CAACzB,IAAa,EAAW;EACrC,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5B,OAAO,KAAK;EACd;EAEA,OAAO,iBAAiB,CAAC0B,IAAI,CAACC,kBAAkB,CAAC3B,IAAI,CAAC,CAAC;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS4B,sBAAsBA,CACpCC,OAAwB,EACxBlB,IAAY,EACZC,IAAY,EACZ/B,OAAkC,EAC5B;EACN,OAAQgD,OAAO,CAAqBnB,WAAW,CAACC,IAAI,EAAEC,IAAI,EAAE/B,OAAO,CAAC;AACtE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAASkB,GAAGA,CACjB+B,YAAgD,EAChD9B,IAAa,EACK;EAClB;EACA,IAAI,OAAQ8B,YAAY,CAAsBC,QAAQ,KAAK,QAAQ,EAAE;IACnE,IAAI/B,IAAI,KAAKrB,SAAS,EAAE;MACtB,OAAOmD,YAAY;IACrB;IACA,OAAQA,YAAY,CAA8BE,KAAK,CAAChC,IAAI,CAAC;EAC/D;EAEA,MAAM6B,OAAO,GAAGC,YAA+B;EAE/C,IAAI9B,IAAI,IAAI,IAAI,IAAIyB,KAAK,CAACzB,IAAI,CAAC,EAAE;IAC/B,OAAQ6B,OAAO,CAAqB5B,UAAU,CAACD,IAAI,CAAC;EACtD;EACA,OAAQ6B,OAAO,CAAqB9B,GAAG,CAACC,IAAI,CAAC;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASiC,YAAYA,CAACC,UAA4B,EAAiB;EACxE,OAAQA,UAAU,CAA8BC,MAAM,CAAC,CAAC;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,OAAOA,CACrBC,WAA6B,EAC7BC,qBAA8B,EACf;EACf,MAAM,IAAItD,KAAK,CAAC,gCAAgC,CAAC;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASuD,QAAQA,CACtBF,WAA6B,EAC7BC,qBAA8B,EACR;EACtB,MAAM,IAAItD,KAAK,CAAC,iCAAiC,CAAC;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASwD,cAAcA,CAACN,UAA4B,EAAmB;EAC5E,OAAQA,UAAU,CAA8BM,cAAc,CAAC,CAAC;AAClE;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAACP,UAA4B,EAAyB;EAC/E,OAAQA,UAAU,CAA8BO,WAAW,CAAC,CAAC;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,SAASA,CACvBL,WAA6B,EAC7BC,qBAA8B,EACP;EACvB,MAAM,IAAItD,KAAK,CAAC,kCAAkC,CAAC;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAe2D,IAAIA,CACxBT,UAA4B,EAC5BrD,OAAqB,EACA;EACrB,MAAM+D,MAAM,GAAG,MAAOV,UAAU,CAA8BS,IAAI,CAAC9D,OAAO,CAAC;EAE3E,IAAI+D,MAAM,CAACC,aAAa,KAAK,IAAI,EAAE;IACjC,OAAOD,MAAM,CAACC,aAAa;EAC7B;EACA,OAAOD,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeE,OAAOA,CAACZ,UAA4B,EAAuB;EAC/E,MAAMU,MAAM,GAAG,MAAOV,UAAU,CAA8BY,OAAO,CAAC,CAAC;EAEvE,IAAIF,MAAM,CAACC,aAAa,KAAK,IAAI,EAAE;IACjC,OAAOD,MAAM,CAACC,aAAa;EAC7B;EACA,OAAOD,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,cAAcA,CAC5Bb,UAA4B,EAC5Bc,QAA0B,EACH;EACvB,OAAQd,UAAU,CAA8Ba,cAAc,CAACC,QAAQ,CAAC;AAC1E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,WAAWA,CAC/BZ,WAA6B,EAC7Ba,KAAsC,EACtCC,SAA0B,EACH;EACvB,MAAM,IAAInE,KAAK,CAAC,oCAAoC,CAAC;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASoE,oBAAoBA,CAClClB,UAA4B,EAC5BmB,IAAqC,EACrCL,QAAyB,EACb;EACZ,OAAQd,UAAU,CAA8BoB,GAAG,CAACD,IAAI,EAAEL,QAAQ,CAAC;AACrE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASO,YAAYA,CAC1BrB,UAA4B,EAC5BmB,IAAY,EACZG,MAAoD,EACpDR,QAAyB,EACnB;EACN,OAAQd,UAAU,CAA8BuB,SAAS,CAACJ,IAAI,EAAEG,MAAM,EAAER,QAAQ,CAAC;AACnF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS1C,wBAAwBA,CAACuB,OAAwB,EAAEtB,IAAY,EAAiB;EAC9F,OAAQsB,OAAO,CAAqBvB,wBAAwB,CAACC,IAAI,CAAC;AACpE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAACqB,OAAwB,EAAEtB,IAAY,EAAiB;EAC3F,OAAQsB,OAAO,CAAqBrB,qBAAqB,CAACD,IAAI,CAAC;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASmD,OAAOA,CACrBxB,UAA4B,EAC5ByB,QAAgB,EAChBX,QAAyB,EACnB;EACN,OAAQd,UAAU,CAA8BwB,OAAO,CAACC,QAAQ,EAAEX,QAAQ,CAAC;AAC7E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASY,WAAWA,CAAC1B,UAA4B,EAAEyB,QAAgB,EAAQ;EAChF,OAAQzB,UAAU,CAA8B0B,WAAW,CAACD,QAAQ,CAAC;AACvE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASlD,uBAAuBA,CAACoB,OAAwB,EAAEtB,IAAY,EAAiB;EAC7F,OAAQsB,OAAO,CAAqBpB,uBAAuB,CAACF,IAAI,CAAC;AACnE;AAEAzC,oBAAoB,CAACE,gBAAgB,EAAEH,cAAc,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["isAndroid","isNumber","isString","FirebaseModule","getOrCreateModularInstance","setReactNativeModule","Reference","getGsUrlParts","getHttpUrlParts","handleStorageEvent","version","fallBackModule","nativeEvents","nativeModuleName","config","namespace","hasMultiAppSupport","hasCustomUrlOrRegionSupport","disablePrependCustomUrlOrRegion","turboModule","FirebaseStorageModule","constructor","app","bucketUrl","undefined","_customUrlOrRegion","options","storageBucket","startsWith","Error","storageEvent","emitter","addListener","eventNameForApp","bind","emulatorHost","emulatorPort","_maxUploadRetryTime","native","maxUploadRetryTime","_maxDownloadRetryTime","maxDownloadRetryTime","_maxOperationRetryTime","maxOperationRetryTime","ref","path","refFromURL","url","bucket","parts","storageInstance","setMaxOperationRetryTime","time","setMaxUploadRetryTime","setMaxDownloadRetryTime","useEmulator","host","port","_options","_host","androidBypassEmulatorUrlRemap","firebaseJson","android_bypass_emulator_url_remap","console","log","SDK_VERSION","getStorage","StringFormat","TaskEvent","TaskState","isUrl","test","decodeURIComponent","connectStorageEmulator","storage","storageOrRef","fullPath","child","deleteObject","storageRef","delete","getBlob","_storageRef","_maxDownloadSizeBytes","getBytes","getDownloadURL","getMetadata","getStream","list","result","nextPageToken","listAll","updateMetadata","metadata","uploadBytes","_data","_metadata","uploadBytesResumable","data","put","uploadString","format","putString","putFile","filePath","writeToFile"],"sourceRoot":"../../lib","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
 
3
3
  // Generated by genversion.
4
- export const version = '26.4.0';
4
+ export const version = '27.0.0';
5
5
  //# sourceMappingURL=version.js.map
@@ -1,7 +1,7 @@
1
1
  import type { FirebaseApp } from '@react-native-firebase/app';
2
2
  import './types/internal';
3
3
  import type { EmulatorMockTokenOptions, FirebaseStorage, FullMetadata, ListOptions, ListResult, SettableMetadata, StorageReference, Task, UploadMetadata, UploadResult, UploadTask } from './types/storage';
4
- export declare const SDK_VERSION = "26.4.0";
4
+ export declare const SDK_VERSION = "27.0.0";
5
5
  export declare function getStorage(app?: FirebaseApp, bucketUrl?: string): FirebaseStorage;
6
6
  export type * from './types/storage';
7
7
  export { StringFormat, TaskEvent, TaskState } from './StorageStatics';
@@ -1,6 +1,5 @@
1
- import type { ModuleConfig } from '@react-native-firebase/app/dist/module/types/internal';
1
+ import type { ModuleConfig, ReactNativeFirebaseEventEmitter } from '@react-native-firebase/app/dist/module/types/internal';
2
2
  import type { FirebaseStorage, StorageReference, EmulatorMockTokenOptions, SettableMetadata, UploadMetadata, Task, TaskSnapshot, FullMetadata, ListResult, ListOptions } from './storage';
3
- import type EventEmitter from 'react-native/Libraries/vendor/emitter/EventEmitter';
4
3
  /**
5
4
  * Internal Storage type with access to private properties.
6
5
  * Used internally by StorageReference and other internal classes.
@@ -8,7 +7,7 @@ import type EventEmitter from 'react-native/Libraries/vendor/emitter/EventEmitte
8
7
  export type StorageInternal = FirebaseStorage & {
9
8
  native: NativeRNFBTurboStorage;
10
9
  _customUrlOrRegion: string | null;
11
- emitter: EventEmitter;
10
+ emitter: ReactNativeFirebaseEventEmitter;
12
11
  eventNameForApp: (...args: Array<string | number>) => string;
13
12
  _config: ModuleConfig;
14
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../../lib/types/internal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../../lib/types/internal.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "26.4.0";
1
+ export declare const version = "27.0.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -34,6 +34,16 @@
34
34
  #import "RNFBStorageCommon.h"
35
35
  #import "RNFBUtilsModule.h"
36
36
 
37
+ #if __has_include(<RNFBStorage/RNFBStorage-Swift.h>)
38
+ #import <RNFBStorage/RNFBStorage-Swift.h>
39
+ #elif __has_include("RNFBStorage-Swift.h")
40
+ #import "RNFBStorage-Swift.h"
41
+ #elif __has_include("RNFBHandleMapStorage-Swift.inc")
42
+ #import "RNFBHandleMapStorage-Swift.inc"
43
+ #else
44
+ #error "RNFBStorage Swift interface not found"
45
+ #endif
46
+
37
47
  @implementation RNFBStorageCommon
38
48
 
39
49
  + (NSData *)NSDataFromUploadString:(NSString *)string format:(NSString *)format {
@@ -264,22 +274,15 @@
264
274
 
265
275
  + (NSDictionary *)buildErrorSnapshotDict:(NSError *)error
266
276
  taskSnapshotDict:(NSMutableDictionary *)taskSnapshotDict {
267
- NSArray *codeAndMessage = [self getErrorCodeMessage:error];
268
- taskSnapshotDict[@"error"] = @{
269
- @"code" : (NSString *)codeAndMessage[0],
270
- @"message" : (NSString *)codeAndMessage[1],
271
- @"nativeErrorMessage" : [error localizedDescription]
272
- };
273
- return taskSnapshotDict;
277
+ return [RNFBStorageErrorSnapshotDictBuilder buildErrorSnapshotDict:error
278
+ taskSnapshotDict:taskSnapshotDict];
274
279
  }
275
280
 
276
281
  + (NSDictionary *)buildErrorSnapshotDictFromCodeAndMessage:(NSArray *)codeAndMessage
277
282
  taskSnapshotDict:(NSMutableDictionary *)taskSnapshotDict {
278
- taskSnapshotDict[@"error"] = @{
279
- @"code" : (NSString *)codeAndMessage[0],
280
- @"message" : (NSString *)codeAndMessage[1],
281
- };
282
- return taskSnapshotDict;
283
+ return [RNFBStorageErrorSnapshotDictBuilder
284
+ buildErrorSnapshotDictFromCodeAndMessage:codeAndMessage
285
+ taskSnapshotDict:taskSnapshotDict];
283
286
  }
284
287
 
285
288
  + (NSDictionary *)metadataToDict:(FIRStorageMetadata *)metadata {
@@ -390,17 +393,7 @@
390
393
  }
391
394
 
392
395
  + (NSString *)getTaskStatus:(FIRStorageTaskStatus)status {
393
- if (status == FIRStorageTaskStatusResume || status == FIRStorageTaskStatusProgress) {
394
- return @"running";
395
- } else if (status == FIRStorageTaskStatusPause) {
396
- return @"paused";
397
- } else if (status == FIRStorageTaskStatusSuccess) {
398
- return @"success";
399
- } else if (status == FIRStorageTaskStatusFailure) {
400
- return @"error";
401
- } else {
402
- return @"unknown";
403
- }
396
+ return [RNFBStorageTaskStatusMapper stringForTaskStatus:(NSInteger)status];
404
397
  }
405
398
 
406
399
  + (FIRStorageMetadata *)buildMetadataFromMap:(NSDictionary *)metadata
@@ -472,81 +465,7 @@
472
465
  }
473
466
 
474
467
  + (NSArray *)getErrorCodeMessage:(NSError *)error {
475
- NSString *code = @"unknown";
476
-
477
- if (error == nil) {
478
- return @[ code, @"An unknown error has occurred." ];
479
- }
480
-
481
- NSString *message = [error localizedDescription];
482
- NSDictionary *userInfo = [error userInfo];
483
- NSError *underlyingError = userInfo[NSUnderlyingErrorKey];
484
- NSString *underlyingErrorDescription = [underlyingError localizedDescription];
485
-
486
- switch (error.code) {
487
- case FIRStorageErrorCodeUnknown:
488
- if ([underlyingErrorDescription
489
- isEqualToString:@"The operation couldn’t be completed. Permission denied"]) {
490
- code = @"invalid-device-file-path";
491
- message = @"The specified device file path is invalid or is restricted.";
492
- } else {
493
- if (userInfo[@"ResponseBody"]) {
494
- message =
495
- [NSString stringWithFormat:@"An unknown error has occurred. (underlying reason '%@')",
496
- userInfo[@"ResponseBody"]];
497
- } else {
498
- message = @"An unknown error has occurred.";
499
- }
500
- }
501
- break;
502
- case FIRStorageErrorCodeObjectNotFound:
503
- code = @"object-not-found";
504
- message = @"No object exists at the desired reference.";
505
- break;
506
- case FIRStorageErrorCodeBucketNotFound:
507
- code = @"bucket-not-found";
508
- message = @"No bucket is configured for Firebase Storage.";
509
- break;
510
- case FIRStorageErrorCodeProjectNotFound:
511
- code = @"project-not-found";
512
- message = @"No project is configured for Firebase Storage.";
513
- break;
514
- case FIRStorageErrorCodeQuotaExceeded:
515
- code = @"quota-exceeded";
516
- message = @"Quota on your Firebase Storage bucket has been exceeded.";
517
- break;
518
- case FIRStorageErrorCodeUnauthenticated:
519
- code = @"unauthenticated";
520
- message = @"User is unauthenticated. Authenticate and try again.";
521
- break;
522
- case FIRStorageErrorCodeUnauthorized:
523
- code = @"unauthorized";
524
- message = @"User is not authorized to perform the desired action.";
525
- break;
526
- case FIRStorageErrorCodeRetryLimitExceeded:
527
- code = @"retry-limit-exceeded";
528
- message = @"The maximum time limit on an operation (upload, download, delete, etc.) has been "
529
- @"exceeded.";
530
- break;
531
- case FIRStorageErrorCodeNonMatchingChecksum:
532
- code = @"non-matching-checksum";
533
- message =
534
- @"File on the client does not match the checksum of the file received by the server.";
535
- break;
536
- case FIRStorageErrorCodeDownloadSizeExceeded:
537
- code = @"download-size-exceeded";
538
- message =
539
- @"Size of the downloaded file exceeds the amount of memory allocated for the download.";
540
- break;
541
- case FIRStorageErrorCodeCancelled:
542
- code = @"cancelled";
543
- message = @"User cancelled the operation.";
544
- break;
545
- default:
546
- break;
547
- }
548
-
549
- return @[ code, message ];
468
+ return [RNFBStorageErrorCodeMapper codeAndMessageForError:error];
550
469
  }
551
470
 
552
471
  @end
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Copyright (c) 2016-present Invertase Limited & Contributors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this library except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import Foundation
18
+
19
+ /**
20
+ * `FIRStorageErrorCode` raw value → JS error-code / message mapping previously
21
+ * inline in `+[RNFBStorageCommon getErrorCodeMessage:]`.
22
+ *
23
+ * Raw ints from Firebase Storage `StorageErrorCode`
24
+ * (`@objc(FIRStorageErrorCode)` in `StorageError.swift`):
25
+ * - unknown = -13000, objectNotFound = -13010, …
26
+ *
27
+ * Hardcoded so the Storage unit target does not need FirebaseStorage.
28
+ */
29
+ @objc(RNFBStorageErrorCodeMapper)
30
+ public final class RNFBStorageErrorCodeMapper: NSObject {
31
+ /// `FIRStorageErrorCodeUnknown`
32
+ private static let codeUnknown = -13000
33
+ /// `FIRStorageErrorCodeObjectNotFound`
34
+ private static let codeObjectNotFound = -13010
35
+ /// `FIRStorageErrorCodeBucketNotFound`
36
+ private static let codeBucketNotFound = -13011
37
+ /// `FIRStorageErrorCodeProjectNotFound`
38
+ private static let codeProjectNotFound = -13012
39
+ /// `FIRStorageErrorCodeQuotaExceeded`
40
+ private static let codeQuotaExceeded = -13013
41
+ /// `FIRStorageErrorCodeUnauthenticated`
42
+ private static let codeUnauthenticated = -13020
43
+ /// `FIRStorageErrorCodeUnauthorized`
44
+ private static let codeUnauthorized = -13021
45
+ /// `FIRStorageErrorCodeRetryLimitExceeded`
46
+ private static let codeRetryLimitExceeded = -13030
47
+ /// `FIRStorageErrorCodeNonMatchingChecksum`
48
+ private static let codeNonMatchingChecksum = -13031
49
+ /// `FIRStorageErrorCodeDownloadSizeExceeded`
50
+ private static let codeDownloadSizeExceeded = -13032
51
+ /// `FIRStorageErrorCodeCancelled`
52
+ private static let codeCancelled = -13040
53
+
54
+ /// Exact pre-port string (U+2019 apostrophe in "couldn't").
55
+ private static let permissionDeniedUnderlying =
56
+ "The operation couldn’t be completed. Permission denied"
57
+
58
+ @objc(codeAndMessageForError:)
59
+ public static func codeAndMessage(for error: NSError?) -> [String] {
60
+ var code = "unknown"
61
+
62
+ guard let error else {
63
+ return [code, "An unknown error has occurred."]
64
+ }
65
+
66
+ var message = error.localizedDescription
67
+ let userInfo = error.userInfo
68
+ let underlyingError = userInfo[NSUnderlyingErrorKey] as? NSError
69
+ let underlyingErrorDescription = underlyingError?.localizedDescription
70
+
71
+ switch error.code {
72
+ case codeUnknown:
73
+ if underlyingErrorDescription == permissionDeniedUnderlying {
74
+ code = "invalid-device-file-path"
75
+ message = "The specified device file path is invalid or is restricted."
76
+ } else if let responseBody = userInfo["ResponseBody"] {
77
+ message =
78
+ "An unknown error has occurred. (underlying reason '\(responseBody)')"
79
+ } else {
80
+ message = "An unknown error has occurred."
81
+ }
82
+ case codeObjectNotFound:
83
+ code = "object-not-found"
84
+ message = "No object exists at the desired reference."
85
+ case codeBucketNotFound:
86
+ code = "bucket-not-found"
87
+ message = "No bucket is configured for Firebase Storage."
88
+ case codeProjectNotFound:
89
+ code = "project-not-found"
90
+ message = "No project is configured for Firebase Storage."
91
+ case codeQuotaExceeded:
92
+ code = "quota-exceeded"
93
+ message = "Quota on your Firebase Storage bucket has been exceeded."
94
+ case codeUnauthenticated:
95
+ code = "unauthenticated"
96
+ message = "User is unauthenticated. Authenticate and try again."
97
+ case codeUnauthorized:
98
+ code = "unauthorized"
99
+ message = "User is not authorized to perform the desired action."
100
+ case codeRetryLimitExceeded:
101
+ code = "retry-limit-exceeded"
102
+ message =
103
+ "The maximum time limit on an operation (upload, download, delete, etc.) has been "
104
+ + "exceeded."
105
+ case codeNonMatchingChecksum:
106
+ code = "non-matching-checksum"
107
+ message =
108
+ "File on the client does not match the checksum of the file received by the server."
109
+ case codeDownloadSizeExceeded:
110
+ code = "download-size-exceeded"
111
+ message =
112
+ "Size of the downloaded file exceeds the amount of memory allocated for the download."
113
+ case codeCancelled:
114
+ code = "cancelled"
115
+ message = "User cancelled the operation."
116
+ default:
117
+ break
118
+ }
119
+
120
+ return [code, message]
121
+ }
122
+ }