@react-native-firebase/app 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 (242) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +10 -27
  3. package/RNFBApp.podspec +13 -5
  4. package/android/build.gradle +3 -0
  5. package/android/src/main/java/io/invertase/firebase/common/RNFBHandleCollisionException.kt +29 -0
  6. package/android/src/main/java/io/invertase/firebase/common/RNFBHandleMap.kt +146 -0
  7. package/android/src/main/java/io/invertase/firebase/common/TaskExecutorService.kt +156 -0
  8. package/android/src/main/java/io/invertase/firebase/common/UniversalFirebaseModule.kt +44 -0
  9. package/android/src/main/java/io/invertase/firebase/common/UniversalFirebasePreferences.kt +100 -0
  10. package/android/src/reactnative/java/io/invertase/firebase/app/NativeRNFBTurboApp.kt +250 -0
  11. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseApp.kt +64 -0
  12. package/android/src/reactnative/java/io/invertase/firebase/app/{ReactNativeFirebaseAppInitProvider.java → ReactNativeFirebaseAppInitProvider.kt} +3 -4
  13. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppPackage.kt +47 -0
  14. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppRegistrar.kt +33 -0
  15. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseVersion.java +1 -1
  16. package/android/src/reactnative/java/io/invertase/firebase/common/RCTConvertFirebase.kt +185 -0
  17. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEvent.kt +35 -0
  18. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitter.kt +662 -0
  19. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseJSON.kt +103 -0
  20. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseMeta.kt +96 -0
  21. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseModule.kt +140 -0
  22. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebasePreferences.kt +109 -0
  23. package/android/src/reactnative/java/io/invertase/firebase/common/SharedUtils.kt +451 -0
  24. package/android/src/reactnative/java/io/invertase/firebase/interfaces/{ContextProvider.java → ContextProvider.kt} +8 -8
  25. package/android/src/reactnative/java/io/invertase/firebase/interfaces/{NativeError.java → NativeError.kt} +8 -8
  26. package/android/src/reactnative/java/io/invertase/firebase/interfaces/{NativeEvent.java → NativeEvent.kt} +6 -6
  27. package/android/src/reactnative/java/io/invertase/firebase/utils/NativeRNFBTurboUtils.kt +219 -0
  28. package/android/src/test/java/expo/core/ModuleRegistry.java +9 -0
  29. package/android/src/test/java/io/invertase/firebase/app/NativeRNFBTurboAppTest.java +182 -59
  30. package/android/src/test/java/io/invertase/firebase/app/ReactNativeFirebaseAppComponentsJavaCompatibilityTest.java +70 -0
  31. package/android/src/test/java/io/invertase/firebase/app/ReactNativeFirebaseAppJavaCompatibilityTest.java +60 -0
  32. package/android/src/test/java/io/invertase/firebase/app/ReactNativeFirebaseAppPackageTest.java +165 -0
  33. package/android/src/test/java/io/invertase/firebase/app/ReactNativeFirebaseAppTest.kt +167 -0
  34. package/android/src/test/java/io/invertase/firebase/common/RCTConvertFirebaseJavaCompatibilityTest.java +112 -0
  35. package/android/src/test/java/io/invertase/firebase/common/RCTConvertFirebaseTest.kt +317 -0
  36. package/android/src/test/java/io/invertase/firebase/common/RNFBHandleMapTest.kt +309 -0
  37. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitterJavaCompatibilityTest.java +176 -0
  38. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitterTest.java +143 -12
  39. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseEventTest.kt +61 -0
  40. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseJSONJavaCompatibilityTest.java +85 -0
  41. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseJSONTest.kt +296 -0
  42. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseMetaJavaCompatibilityTest.java +67 -0
  43. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseMetaTest.kt +246 -0
  44. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseModuleTest.kt +254 -0
  45. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebasePreferencesJavaCompatibilityTest.java +87 -0
  46. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebasePreferencesTest.kt +260 -0
  47. package/android/src/test/java/io/invertase/firebase/common/SharedUtilsJavaCompatibilityTest.java +255 -0
  48. package/android/src/test/java/io/invertase/firebase/common/SharedUtilsTest.kt +674 -0
  49. package/android/src/test/java/io/invertase/firebase/common/TaskExecutorServiceTest.kt +290 -0
  50. package/android/src/test/java/io/invertase/firebase/common/UniversalFirebaseModuleJavaCompatibilityTest.java +178 -0
  51. package/android/src/test/java/io/invertase/firebase/common/UniversalFirebasePreferencesJavaCompatibilityTest.java +99 -0
  52. package/android/src/test/java/io/invertase/firebase/common/UniversalFirebasePreferencesTest.kt +217 -0
  53. package/android/src/test/java/io/invertase/firebase/commoncompat/ReactNativeFirebaseModuleJavaCompatibilityTest.java +176 -0
  54. package/android/src/test/java/io/invertase/firebase/commoncompat/ReactNativeFirebaseModuleKotlinCompatibilityTest.kt +52 -0
  55. package/android/src/test/java/io/invertase/firebase/interfaces/InterfacesJavaCompatibilityTest.java +144 -0
  56. package/android/src/test/java/io/invertase/firebase/interfaces/NativeEventTest.kt +56 -0
  57. package/android/src/test/java/io/invertase/firebase/utils/NativeRNFBTurboUtilsTest.java +517 -21
  58. package/dist/module/FirebaseApp.js +10 -0
  59. package/dist/module/FirebaseApp.js.map +1 -1
  60. package/dist/module/common/deeps.js +3 -0
  61. package/dist/module/common/deeps.js.map +1 -1
  62. package/dist/module/internal/FirebaseModule.js.map +1 -1
  63. package/dist/module/internal/RNFBNativeEventEmitter.js +12 -1
  64. package/dist/module/internal/RNFBNativeEventEmitter.js.map +1 -1
  65. package/dist/module/internal/SharedEventEmitter.js +3 -1
  66. package/dist/module/internal/SharedEventEmitter.js.map +1 -1
  67. package/dist/module/internal/index.js +1 -0
  68. package/dist/module/internal/index.js.map +1 -1
  69. package/dist/module/internal/registry/app.js +7 -1
  70. package/dist/module/internal/registry/app.js.map +1 -1
  71. package/dist/module/types/app.js.map +1 -1
  72. package/dist/module/types/internal.js +2 -0
  73. package/dist/module/version.js +1 -1
  74. package/dist/typescript/lib/FirebaseApp.d.ts +7 -0
  75. package/dist/typescript/lib/FirebaseApp.d.ts.map +1 -1
  76. package/dist/typescript/lib/common/deeps.d.ts.map +1 -1
  77. package/dist/typescript/lib/internal/FirebaseModule.d.ts +2 -3
  78. package/dist/typescript/lib/internal/FirebaseModule.d.ts.map +1 -1
  79. package/dist/typescript/lib/internal/NativeModules.d.ts +4 -1
  80. package/dist/typescript/lib/internal/NativeModules.d.ts.map +1 -1
  81. package/dist/typescript/lib/internal/RNFBNativeEventEmitter.d.ts +2 -2
  82. package/dist/typescript/lib/internal/RNFBNativeEventEmitter.d.ts.map +1 -1
  83. package/dist/typescript/lib/internal/SharedEventEmitter.d.ts +3 -3
  84. package/dist/typescript/lib/internal/SharedEventEmitter.d.ts.map +1 -1
  85. package/dist/typescript/lib/internal/index.d.ts +1 -0
  86. package/dist/typescript/lib/internal/index.d.ts.map +1 -1
  87. package/dist/typescript/lib/internal/registry/app.d.ts.map +1 -1
  88. package/dist/typescript/lib/types/app.d.ts +10 -3
  89. package/dist/typescript/lib/types/app.d.ts.map +1 -1
  90. package/dist/typescript/lib/types/internal.d.ts +12 -0
  91. package/dist/typescript/lib/types/internal.d.ts.map +1 -1
  92. package/dist/typescript/lib/version.d.ts +1 -1
  93. package/firebase-schema.json +4 -0
  94. package/firebase_spm.rb +552 -96
  95. package/ios/RNFBApp/RCTConvert+FIRApp.h +2 -5
  96. package/ios/RNFBApp/RCTConvert+FIRApp.m +11 -6
  97. package/ios/RNFBApp/RCTConvert+FIROptions.h +2 -5
  98. package/ios/RNFBApp/RCTConvert+FIROptions.m +11 -10
  99. package/ios/RNFBApp/RCTConvertFIRApp.swift +86 -0
  100. package/ios/RNFBApp/RCTConvertFIROptions.swift +259 -0
  101. package/ios/RNFBApp/RNFBAppCustomAuthDomains.swift +63 -0
  102. package/ios/RNFBApp/RNFBAppInitializeOptionsMapper.swift +113 -0
  103. package/ios/RNFBApp/RNFBAppLogLevelMapper.swift +53 -0
  104. package/ios/RNFBApp/RNFBAppModule+CustomAuthDomain.m +35 -0
  105. package/ios/RNFBApp/RNFBAppModule.h +6 -2
  106. package/ios/RNFBApp/RNFBAppModule.mm +65 -228
  107. package/ios/RNFBApp/RNFBAppModuleFirebase.swift +439 -0
  108. package/ios/RNFBApp/RNFBAppModuleImplementation.h +68 -0
  109. package/ios/RNFBApp/RNFBAppModuleImplementation.m +195 -0
  110. package/ios/RNFBApp/RNFBHandleMap.m +27 -56
  111. package/ios/RNFBApp/RNFBHandleMapStorage.swift +90 -0
  112. package/ios/RNFBApp/RNFBInitializeAppArguments.swift +82 -0
  113. package/ios/RNFBApp/RNFBJSON.m +22 -38
  114. package/ios/RNFBApp/RNFBJSONImplementation.swift +71 -0
  115. package/ios/RNFBApp/RNFBMeta.m +24 -26
  116. package/ios/RNFBApp/RNFBMetaStorage.swift +76 -0
  117. package/ios/RNFBApp/RNFBNullSentinelDecoding.swift +135 -0
  118. package/ios/RNFBApp/RNFBNullSentinelInterceptor.h +30 -3
  119. package/ios/RNFBApp/RNFBNullSentinelInterceptor.m +28 -5
  120. package/ios/RNFBApp/RNFBPreferences.m +22 -20
  121. package/ios/RNFBApp/RNFBPreferencesStorage.swift +101 -0
  122. package/ios/RNFBApp/RNFBRCTEventEmitter.m +36 -93
  123. package/ios/RNFBApp/RNFBRCTEventEmitterCore.swift +161 -0
  124. package/ios/RNFBApp/RNFBSharedUtils.h +2 -5
  125. package/ios/RNFBApp/RNFBSharedUtils.m +109 -198
  126. package/ios/RNFBApp/RNFBSharedUtilsConfig.swift +72 -0
  127. package/ios/RNFBApp/RNFBSharedUtilsFIRApp.swift +271 -0
  128. package/ios/RNFBApp/RNFBSharedUtilsFormatting.swift +59 -0
  129. package/ios/RNFBApp/RNFBSharedUtilsPromiseRejection.swift +88 -0
  130. package/ios/RNFBApp/RNFBUtilsHelpers.swift +116 -0
  131. package/ios/RNFBApp/RNFBUtilsModule+Foundation.m +44 -0
  132. package/ios/RNFBApp/RNFBUtilsModule+PhotoAssets.m +47 -0
  133. package/ios/RNFBApp/RNFBUtilsModule.h +11 -1
  134. package/ios/RNFBApp/RNFBUtilsModule.mm +10 -85
  135. package/ios/RNFBApp/RNFBUtilsModuleImplementation.h +32 -0
  136. package/ios/RNFBApp/RNFBUtilsModuleImplementation.m +56 -0
  137. package/ios/RNFBApp/RNFBVersion.m +1 -1
  138. package/ios/RNFBApp.xcodeproj/project.pbxproj +100 -0
  139. package/ios/RNFBAppUnitTests/HostStubs/FirebaseCore/FIRApp.m +171 -0
  140. package/ios/RNFBAppUnitTests/HostStubs/FirebaseCore/FirebaseCore.h +78 -0
  141. package/ios/RNFBAppUnitTests/HostStubs/FirebaseInstallations/FIRInstallations.m +7 -0
  142. package/ios/RNFBAppUnitTests/HostStubs/FirebaseInstallations/FirebaseInstallations.h +8 -0
  143. package/ios/RNFBAppUnitTests/HostStubs/RNFBAppModuleHostStub.m +55 -0
  144. package/ios/RNFBAppUnitTests/HostStubs/RNFBAppTurboModules.h +89 -0
  145. package/ios/RNFBAppUnitTests/HostStubs/RNFBAppTurboModules.mm +30 -0
  146. package/ios/RNFBAppUnitTests/HostStubs/React/RCTBridge.h +19 -0
  147. package/ios/RNFBAppUnitTests/HostStubs/React/RCTBridge.m +32 -0
  148. package/ios/RNFBAppUnitTests/HostStubs/React/RCTBridgeModule.h +19 -0
  149. package/ios/RNFBAppUnitTests/HostStubs/React/RCTConvert.h +28 -0
  150. package/ios/RNFBAppUnitTests/HostStubs/React/RCTConvert.m +23 -0
  151. package/ios/RNFBAppUnitTests/HostStubs/React/RCTEventEmitter.h +9 -0
  152. package/ios/RNFBAppUnitTests/HostStubs/React/RCTInvalidating.h +24 -0
  153. package/ios/RNFBAppUnitTests/HostStubs/React/RCTUtils.h +9 -0
  154. package/ios/RNFBAppUnitTests/HostStubs/module.modulemap +13 -0
  155. package/ios/RNFBAppUnitTests/RCTConvertFIRAppFacadeTests.m +61 -0
  156. package/ios/RNFBAppUnitTests/RCTConvertFIRAppTests.swift +73 -0
  157. package/ios/RNFBAppUnitTests/RCTConvertFIROptionsFacadeTests.m +57 -0
  158. package/ios/RNFBAppUnitTests/RCTConvertFIROptionsTests.swift +243 -0
  159. package/ios/RNFBAppUnitTests/RNFBAppCustomAuthDomainsFacadeTests.m +73 -0
  160. package/ios/RNFBAppUnitTests/RNFBAppCustomAuthDomainsTests.swift +70 -0
  161. package/ios/RNFBAppUnitTests/RNFBAppInitializeOptionsMapperTests.swift +190 -0
  162. package/ios/RNFBAppUnitTests/RNFBAppLogLevelFacadeTests.m +76 -0
  163. package/ios/RNFBAppUnitTests/RNFBAppLogLevelMapperTests.swift +59 -0
  164. package/ios/RNFBAppUnitTests/RNFBAppModuleFirebaseFacadeTests.m +215 -0
  165. package/ios/RNFBAppUnitTests/RNFBAppModuleFirebaseTests.swift +430 -0
  166. package/ios/RNFBAppUnitTests/RNFBAppModuleLifecycleTests.m +206 -0
  167. package/ios/RNFBAppUnitTests/RNFBAppModuleShellTests.mm +367 -0
  168. package/ios/RNFBAppUnitTests/RNFBAppUnitTests.xcodeproj/project.pbxproj +355 -2
  169. package/ios/RNFBAppUnitTests/RNFBFirebaseAppClientTests.swift +165 -0
  170. package/ios/RNFBAppUnitTests/RNFBHandleMapStorageTests.swift +121 -0
  171. package/ios/RNFBAppUnitTests/RNFBInitializeAppArgumentsTests.swift +256 -0
  172. package/ios/RNFBAppUnitTests/RNFBJSONImplementationTests.swift +126 -0
  173. package/ios/RNFBAppUnitTests/RNFBJSONTests.m +172 -0
  174. package/ios/RNFBAppUnitTests/RNFBMetaStorageTests.swift +106 -0
  175. package/ios/RNFBAppUnitTests/RNFBMetaTests.m +65 -0
  176. package/ios/RNFBAppUnitTests/RNFBNullSentinelDecodingTests.swift +286 -0
  177. package/ios/RNFBAppUnitTests/RNFBNullSentinelInterceptorTests.m +312 -0
  178. package/ios/RNFBAppUnitTests/RNFBPreferencesStorageTests.swift +105 -0
  179. package/ios/RNFBAppUnitTests/RNFBPreferencesTests.m +110 -0
  180. package/ios/RNFBAppUnitTests/RNFBRCTEventEmitterCoreTests.swift +163 -0
  181. package/ios/RNFBAppUnitTests/RNFBRCTEventEmitterFacadeTests.m +141 -0
  182. package/ios/RNFBAppUnitTests/RNFBSharedUtilsConfigFacadeTests.m +100 -0
  183. package/ios/RNFBAppUnitTests/RNFBSharedUtilsConfigTests.swift +234 -0
  184. package/ios/RNFBAppUnitTests/RNFBSharedUtilsFIRAppFacadeTests.m +145 -0
  185. package/ios/RNFBAppUnitTests/RNFBSharedUtilsFIRAppTests.swift +173 -0
  186. package/ios/RNFBAppUnitTests/RNFBSharedUtilsFormattingFacadeTests.m +38 -0
  187. package/ios/RNFBAppUnitTests/RNFBSharedUtilsFormattingTests.swift +82 -0
  188. package/ios/RNFBAppUnitTests/RNFBSharedUtilsNullSentinelTests.m +35 -0
  189. package/ios/RNFBAppUnitTests/RNFBSharedUtilsPromiseRejectionFacadeTests.m +107 -0
  190. package/ios/RNFBAppUnitTests/RNFBSharedUtilsPromiseRejectionTests.swift +133 -0
  191. package/ios/RNFBAppUnitTests/RNFBUtilsHelpersTests.swift +144 -0
  192. package/ios/RNFBAppUnitTests/RNFBUtilsModuleFacadeTests.m +72 -0
  193. package/ios/RNFBAppUnitTests/RNFBUtilsModuleShellTests.mm +282 -0
  194. package/ios/RNFBFirebase/Package.swift +53 -0
  195. package/ios/RNFBFirebase/Sources/RNFBFirebase/RNFBFirebase.swift +285 -0
  196. package/ios/RNFBFirebase/Sources/RNFBFirebaseBridge/Public/.gitkeep +0 -0
  197. package/ios/RNFBFirebase/Sources/RNFBFirebaseBridge/RNFBFirebaseBridge.m +169 -0
  198. package/ios/RNFBFirebase/Sources/RNFBFirebaseBridge/include/RNFBFirebaseBridge.h +52 -0
  199. package/ios/RNFBFirebaseUnitTests/RNFBAppDynamicFacadeTests.swift +240 -0
  200. package/{android/src/main/java/io/invertase/firebase/common/RNFBHandleCollisionException.java → ios/RNFBFirebaseUnitTests/RNFBFirebaseClientImport.swift} +23 -14
  201. package/ios/RNFBFirebaseUnitTests/RNFBFirebaseUnitTests.xcodeproj/project.pbxproj +588 -0
  202. package/ios/RNFBFirebaseUnitTests/RNFBFirebaseUnitTests.xcodeproj/xcshareddata/xcschemes/RNFBFirebaseUnitTests.xcscheme +83 -0
  203. package/ios_config.sh +50 -22
  204. package/lib/FirebaseApp.ts +10 -0
  205. package/lib/common/deeps.ts +3 -0
  206. package/lib/internal/FirebaseModule.ts +6 -3
  207. package/lib/internal/NativeModules.ts +4 -1
  208. package/lib/internal/RNFBNativeEventEmitter.ts +14 -5
  209. package/lib/internal/SharedEventEmitter.ts +5 -1
  210. package/lib/internal/index.ts +1 -0
  211. package/lib/internal/react-native-vendor-emitter.d.ts +11 -0
  212. package/lib/internal/registry/app.ts +7 -1
  213. package/lib/types/app.ts +10 -3
  214. package/lib/types/internal.ts +19 -0
  215. package/lib/version.ts +1 -1
  216. package/package.json +8 -8
  217. package/plugin/build/ios/appDelegate.js +2 -2
  218. package/plugin/build/ios/podfile.js +16 -16
  219. package/plugin/build/pluginConfig.d.ts +4 -2
  220. package/plugin/src/ios/appDelegate.ts +2 -2
  221. package/plugin/src/ios/podfile.ts +20 -23
  222. package/plugin/src/pluginConfig.ts +4 -2
  223. package/android/src/main/java/io/invertase/firebase/common/RNFBHandleMap.java +0 -150
  224. package/android/src/main/java/io/invertase/firebase/common/TaskExecutorService.java +0 -148
  225. package/android/src/main/java/io/invertase/firebase/common/UniversalFirebaseModule.java +0 -62
  226. package/android/src/main/java/io/invertase/firebase/common/UniversalFirebasePreferences.java +0 -91
  227. package/android/src/reactnative/java/io/invertase/firebase/app/NativeRNFBTurboApp.java +0 -224
  228. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseApp.java +0 -46
  229. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppPackage.java +0 -49
  230. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppRegistrar.java +0 -35
  231. package/android/src/reactnative/java/io/invertase/firebase/common/RCTConvertFirebase.java +0 -192
  232. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEvent.java +0 -53
  233. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitter.java +0 -606
  234. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseJSON.java +0 -109
  235. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseMeta.java +0 -101
  236. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseModule.java +0 -146
  237. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebasePreferences.java +0 -96
  238. package/android/src/reactnative/java/io/invertase/firebase/common/SharedUtils.java +0 -441
  239. package/android/src/reactnative/java/io/invertase/firebase/utils/NativeRNFBTurboUtils.java +0 -223
  240. package/android/src/test/java/io/invertase/firebase/common/RNFBHandleMapTest.java +0 -275
  241. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseJSONTest.java +0 -108
  242. package/android/src/test/java/io/invertase/firebase/common/TaskExecutorServiceTest.java +0 -97
@@ -0,0 +1,285 @@
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
+ /// Foundation-only snapshot of a live app for RNFBApp mapping code.
20
+ public final class RNFBFirebaseAppSnapshot: NSObject {
21
+ public let name: String
22
+ public let apiKey: String?
23
+ public let googleAppID: String?
24
+ public let projectID: String?
25
+ public let databaseURL: String?
26
+ public let storageBucket: String?
27
+ public let gcmSenderID: String?
28
+ public let clientID: String?
29
+ public let isDataCollectionDefaultEnabled: Bool
30
+
31
+ public init(
32
+ name: String,
33
+ apiKey: String?,
34
+ googleAppID: String?,
35
+ projectID: String?,
36
+ databaseURL: String?,
37
+ storageBucket: String?,
38
+ gcmSenderID: String?,
39
+ clientID: String?,
40
+ isDataCollectionDefaultEnabled: Bool
41
+ ) {
42
+ self.name = name
43
+ self.apiKey = apiKey
44
+ self.googleAppID = googleAppID
45
+ self.projectID = projectID
46
+ self.databaseURL = databaseURL
47
+ self.storageBucket = storageBucket
48
+ self.gcmSenderID = gcmSenderID
49
+ self.clientID = clientID
50
+ self.isDataCollectionDefaultEnabled = isDataCollectionDefaultEnabled
51
+ }
52
+ }
53
+
54
+ /// Live options operations. Public signatures stay Foundation types.
55
+ public enum RNFBFirebaseOptionsClient {
56
+ public static func create(googleAppID: String?, gcmSenderID: String?) -> NSObject {
57
+ rnfbWithCString(googleAppID) { appID in
58
+ rnfbWithCString(gcmSenderID) { senderID in
59
+ rnfbRetainedObject(RNFBFirebaseCreateOptions(appID, senderID))
60
+ }
61
+ }
62
+ }
63
+
64
+ public static func apiKey(_ options: NSObject) -> String? {
65
+ rnfbString(RNFBFirebaseOptionsAPIKey(options))
66
+ }
67
+
68
+ public static func setAPIKey(_ value: String?, on options: NSObject) {
69
+ rnfbWithCString(value) { RNFBFirebaseOptionsSetAPIKey(options, $0) }
70
+ }
71
+
72
+ public static func projectID(_ options: NSObject) -> String? {
73
+ rnfbString(RNFBFirebaseOptionsProjectID(options))
74
+ }
75
+
76
+ public static func setProjectID(_ value: String?, on options: NSObject) {
77
+ rnfbWithCString(value) { RNFBFirebaseOptionsSetProjectID(options, $0) }
78
+ }
79
+
80
+ public static func clientID(_ options: NSObject) -> String? {
81
+ rnfbString(RNFBFirebaseOptionsClientID(options))
82
+ }
83
+
84
+ public static func setClientID(_ value: String?, on options: NSObject) {
85
+ rnfbWithCString(value) { RNFBFirebaseOptionsSetClientID(options, $0) }
86
+ }
87
+
88
+ public static func databaseURL(_ options: NSObject) -> String? {
89
+ rnfbString(RNFBFirebaseOptionsDatabaseURL(options))
90
+ }
91
+
92
+ public static func setDatabaseURL(_ value: String?, on options: NSObject) {
93
+ rnfbWithCString(value) { RNFBFirebaseOptionsSetDatabaseURL(options, $0) }
94
+ }
95
+
96
+ public static func storageBucket(_ options: NSObject) -> String? {
97
+ rnfbString(RNFBFirebaseOptionsStorageBucket(options))
98
+ }
99
+
100
+ public static func setStorageBucket(_ value: String?, on options: NSObject) {
101
+ rnfbWithCString(value) { RNFBFirebaseOptionsSetStorageBucket(options, $0) }
102
+ }
103
+
104
+ public static func bundleID(_ options: NSObject) -> String? {
105
+ rnfbString(RNFBFirebaseOptionsBundleID(options))
106
+ }
107
+
108
+ public static func setBundleID(_ value: String?, on options: NSObject) {
109
+ rnfbWithCString(value) { RNFBFirebaseOptionsSetBundleID(options, $0) }
110
+ }
111
+
112
+ public static func appGroupID(_ options: NSObject) -> String? {
113
+ rnfbString(RNFBFirebaseOptionsAppGroupID(options))
114
+ }
115
+
116
+ public static func setAppGroupID(_ value: String?, on options: NSObject) {
117
+ rnfbWithCString(value) { RNFBFirebaseOptionsSetAppGroupID(options, $0) }
118
+ }
119
+ }
120
+
121
+ /// Live app operations. No SDK types cross this boundary.
122
+ public enum RNFBFirebaseAppClient {
123
+ public static func defaultApp() -> NSObject? {
124
+ rnfbObject(RNFBFirebaseDefaultApp())
125
+ }
126
+
127
+ public static func app(named name: String) -> NSObject? {
128
+ name.withCString { rnfbObject(RNFBFirebaseAppNamed($0)) }
129
+ }
130
+
131
+ public static func allApps() -> [AnyHashable: Any]? {
132
+ guard let apps = rnfbDictionary(RNFBFirebaseAllApps()) else { return nil }
133
+ var result: [AnyHashable: Any] = [:]
134
+ for (key, value) in apps {
135
+ guard let key = key as? AnyHashable else { continue }
136
+ result[key] = value
137
+ }
138
+ return result
139
+ }
140
+
141
+ /// Default-plist configure. The dynamic probe app cannot name the SDK app type.
142
+ public static func configure() {
143
+ RNFBFirebaseConfigure()
144
+ }
145
+
146
+ public static func configure(options: NSObject) {
147
+ RNFBFirebaseConfigureWithOptions(options)
148
+ }
149
+
150
+ public static func configure(name: String, options: NSObject) {
151
+ name.withCString { RNFBFirebaseConfigureWithName($0, options) }
152
+ }
153
+
154
+ public static func snapshot(of app: NSObject) -> RNFBFirebaseAppSnapshot {
155
+ let raw = rnfbDictionary(RNFBFirebaseSnapshot(app)) ?? [:]
156
+ return RNFBFirebaseAppSnapshot(
157
+ name: raw["name"] as? String ?? "",
158
+ apiKey: snapshotString(raw, "apiKey"),
159
+ googleAppID: snapshotString(raw, "googleAppID"),
160
+ projectID: snapshotString(raw, "projectID"),
161
+ databaseURL: snapshotString(raw, "databaseURL"),
162
+ storageBucket: snapshotString(raw, "storageBucket"),
163
+ gcmSenderID: snapshotString(raw, "gcmSenderID"),
164
+ clientID: snapshotString(raw, "clientID"),
165
+ isDataCollectionDefaultEnabled: raw["isDataCollectionDefaultEnabled"] as? Bool ?? false
166
+ )
167
+ }
168
+
169
+ /// Returns false when `app` is not a live app (caller no-ops).
170
+ public static func setDataCollectionDefaultEnabled(_ enabled: Bool, forApp app: NSObject) -> Bool {
171
+ RNFBFirebaseSetDataCollectionDefaultEnabled(ObjCBool(enabled), app).boolValue
172
+ }
173
+
174
+ /// Returns false when `app` is not a live app. Does not invoke `completion` in that case.
175
+ public static func deleteApp(_ app: NSObject, completion: @escaping (Bool) -> Void) -> Bool {
176
+ RNFBFirebaseDeleteApp(app) { success in
177
+ completion(success.boolValue)
178
+ }.boolValue
179
+ }
180
+
181
+ public static func setLoggerLevel(_ level: Int) {
182
+ RNFBFirebaseSetLoggerLevel(level)
183
+ }
184
+
185
+ public static func registerLibrary(name: String, version: String) {
186
+ name.withCString { libraryName in
187
+ version.withCString { libraryVersion in
188
+ RNFBFirebaseRegisterLibrary(libraryName, libraryVersion)
189
+ }
190
+ }
191
+ }
192
+
193
+ private static func snapshotString(_ raw: NSDictionary, _ key: String) -> String? {
194
+ guard let value = raw[key], !(value is NSNull) else { return nil }
195
+ return value as? String
196
+ }
197
+ }
198
+
199
+ // `@_silgen_name` sees the C ABI directly. Class optionals are not null
200
+ // pointers here, so object results cross as `OpaquePointer`. +0 results use
201
+ // `takeUnretainedValue`. The Create result is +1 and uses `takeRetainedValue`.
202
+
203
+ private func rnfbWithCString<T>(_ value: String?, _ body: (UnsafePointer<CChar>?) -> T) -> T {
204
+ guard let value else { return body(nil) }
205
+ return value.withCString(body)
206
+ }
207
+
208
+ private func rnfbRetainedObject(_ pointer: OpaquePointer) -> NSObject {
209
+ Unmanaged<NSObject>.fromOpaque(UnsafeMutableRawPointer(pointer)).takeRetainedValue()
210
+ }
211
+
212
+ private func rnfbObject(_ pointer: OpaquePointer?) -> NSObject? {
213
+ guard let pointer else { return nil }
214
+ return Unmanaged<NSObject>.fromOpaque(UnsafeMutableRawPointer(pointer)).takeUnretainedValue()
215
+ }
216
+
217
+ private func rnfbString(_ pointer: OpaquePointer?) -> String? {
218
+ guard let pointer else { return nil }
219
+ let value = Unmanaged<NSString>.fromOpaque(UnsafeMutableRawPointer(pointer)).takeUnretainedValue()
220
+ return value as String
221
+ }
222
+
223
+ private func rnfbDictionary(_ pointer: OpaquePointer?) -> NSDictionary? {
224
+ guard let pointer else { return nil }
225
+ return Unmanaged<NSDictionary>.fromOpaque(UnsafeMutableRawPointer(pointer)).takeUnretainedValue()
226
+ }
227
+
228
+ @_silgen_name("RNFBFirebaseCreateOptions")
229
+ private func RNFBFirebaseCreateOptions(
230
+ _ googleAppID: UnsafePointer<CChar>?,
231
+ _ senderID: UnsafePointer<CChar>?
232
+ ) -> OpaquePointer
233
+ @_silgen_name("RNFBFirebaseOptionsAPIKey")
234
+ private func RNFBFirebaseOptionsAPIKey(_ options: NSObject) -> OpaquePointer?
235
+ @_silgen_name("RNFBFirebaseOptionsSetAPIKey")
236
+ private func RNFBFirebaseOptionsSetAPIKey(_ options: NSObject, _ value: UnsafePointer<CChar>?)
237
+ @_silgen_name("RNFBFirebaseOptionsProjectID")
238
+ private func RNFBFirebaseOptionsProjectID(_ options: NSObject) -> OpaquePointer?
239
+ @_silgen_name("RNFBFirebaseOptionsSetProjectID")
240
+ private func RNFBFirebaseOptionsSetProjectID(_ options: NSObject, _ value: UnsafePointer<CChar>?)
241
+ @_silgen_name("RNFBFirebaseOptionsClientID")
242
+ private func RNFBFirebaseOptionsClientID(_ options: NSObject) -> OpaquePointer?
243
+ @_silgen_name("RNFBFirebaseOptionsSetClientID")
244
+ private func RNFBFirebaseOptionsSetClientID(_ options: NSObject, _ value: UnsafePointer<CChar>?)
245
+ @_silgen_name("RNFBFirebaseOptionsDatabaseURL")
246
+ private func RNFBFirebaseOptionsDatabaseURL(_ options: NSObject) -> OpaquePointer?
247
+ @_silgen_name("RNFBFirebaseOptionsSetDatabaseURL")
248
+ private func RNFBFirebaseOptionsSetDatabaseURL(_ options: NSObject, _ value: UnsafePointer<CChar>?)
249
+ @_silgen_name("RNFBFirebaseOptionsStorageBucket")
250
+ private func RNFBFirebaseOptionsStorageBucket(_ options: NSObject) -> OpaquePointer?
251
+ @_silgen_name("RNFBFirebaseOptionsSetStorageBucket")
252
+ private func RNFBFirebaseOptionsSetStorageBucket(_ options: NSObject, _ value: UnsafePointer<CChar>?)
253
+ @_silgen_name("RNFBFirebaseOptionsBundleID")
254
+ private func RNFBFirebaseOptionsBundleID(_ options: NSObject) -> OpaquePointer?
255
+ @_silgen_name("RNFBFirebaseOptionsSetBundleID")
256
+ private func RNFBFirebaseOptionsSetBundleID(_ options: NSObject, _ value: UnsafePointer<CChar>?)
257
+ @_silgen_name("RNFBFirebaseOptionsAppGroupID")
258
+ private func RNFBFirebaseOptionsAppGroupID(_ options: NSObject) -> OpaquePointer?
259
+ @_silgen_name("RNFBFirebaseOptionsSetAppGroupID")
260
+ private func RNFBFirebaseOptionsSetAppGroupID(_ options: NSObject, _ value: UnsafePointer<CChar>?)
261
+ @_silgen_name("RNFBFirebaseDefaultApp")
262
+ private func RNFBFirebaseDefaultApp() -> OpaquePointer?
263
+ @_silgen_name("RNFBFirebaseAppNamed")
264
+ private func RNFBFirebaseAppNamed(_ name: UnsafePointer<CChar>) -> OpaquePointer?
265
+ @_silgen_name("RNFBFirebaseAllApps")
266
+ private func RNFBFirebaseAllApps() -> OpaquePointer?
267
+ @_silgen_name("RNFBFirebaseConfigure")
268
+ private func RNFBFirebaseConfigure()
269
+ @_silgen_name("RNFBFirebaseConfigureWithOptions")
270
+ private func RNFBFirebaseConfigureWithOptions(_ options: NSObject)
271
+ @_silgen_name("RNFBFirebaseConfigureWithName")
272
+ private func RNFBFirebaseConfigureWithName(_ name: UnsafePointer<CChar>, _ options: NSObject)
273
+ @_silgen_name("RNFBFirebaseSnapshot")
274
+ private func RNFBFirebaseSnapshot(_ app: NSObject) -> OpaquePointer
275
+ @_silgen_name("RNFBFirebaseSetDataCollectionDefaultEnabled")
276
+ private func RNFBFirebaseSetDataCollectionDefaultEnabled(_ enabled: ObjCBool, _ app: NSObject) -> ObjCBool
277
+ @_silgen_name("RNFBFirebaseDeleteApp")
278
+ private func RNFBFirebaseDeleteApp(
279
+ _ app: NSObject,
280
+ _ completion: @convention(block) (ObjCBool) -> Void
281
+ ) -> ObjCBool
282
+ @_silgen_name("RNFBFirebaseSetLoggerLevel")
283
+ private func RNFBFirebaseSetLoggerLevel(_ level: Int)
284
+ @_silgen_name("RNFBFirebaseRegisterLibrary")
285
+ private func RNFBFirebaseRegisterLibrary(_ name: UnsafePointer<CChar>, _ version: UnsafePointer<CChar>)
@@ -0,0 +1,169 @@
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 "RNFBFirebaseBridge.h"
18
+
19
+ #import <objc/message.h>
20
+
21
+ @import FirebaseCore;
22
+ @import FirebaseInstallations;
23
+
24
+ static FIROptions *RNFBFirebaseOptions(NSObject *options) { return (FIROptions *)options; }
25
+
26
+ static id RNFBFirebaseNilOrString(NSString *_Nullable value) { return value ?: [NSNull null]; }
27
+
28
+ static NSString *RNFBFirebaseString(const char *value) {
29
+ return value == NULL ? nil : [NSString stringWithUTF8String:value];
30
+ }
31
+
32
+ // Link anchor, not API. Nothing else in this bridge uses FirebaseInstallations, so this class
33
+ // reference is what makes the RNFBFirebase dynamic product take a symbol dependency on the
34
+ // FirebaseInstallations package product (declared in Package.swift, requested by
35
+ // RNFBApp.podspec) instead of only importing its module. Its only caller is
36
+ // RNFBFirebaseAppClientTests.testInstallationsLinkageAnchorIsDistinctFromNSObject.
37
+ BOOL RNFBFirebaseInstallationsLinked(void) { return [FIRInstallations class] != [NSObject class]; }
38
+
39
+ NS_RETURNS_RETAINED NSObject *RNFBFirebaseCreateOptions(const char *googleAppID,
40
+ const char *senderID) {
41
+ // alloc and initWithGoogleAppID:GCMSenderID: are each +1. The function name
42
+ // contains Create, so ARC returns the object at +1. That is the same retain
43
+ // balance as takeRetainedValue plus Unmanaged.passRetained on perform.
44
+ return [[FIROptions alloc] initWithGoogleAppID:RNFBFirebaseString(googleAppID)
45
+ GCMSenderID:RNFBFirebaseString(senderID)];
46
+ }
47
+
48
+ NSString *RNFBFirebaseOptionsAPIKey(NSObject *options) {
49
+ return RNFBFirebaseOptions(options).APIKey;
50
+ }
51
+
52
+ void RNFBFirebaseOptionsSetAPIKey(NSObject *options, const char *value) {
53
+ RNFBFirebaseOptions(options).APIKey = RNFBFirebaseString(value);
54
+ }
55
+
56
+ NSString *RNFBFirebaseOptionsProjectID(NSObject *options) {
57
+ return RNFBFirebaseOptions(options).projectID;
58
+ }
59
+
60
+ void RNFBFirebaseOptionsSetProjectID(NSObject *options, const char *value) {
61
+ RNFBFirebaseOptions(options).projectID = RNFBFirebaseString(value);
62
+ }
63
+
64
+ NSString *RNFBFirebaseOptionsClientID(NSObject *options) {
65
+ return RNFBFirebaseOptions(options).clientID;
66
+ }
67
+
68
+ void RNFBFirebaseOptionsSetClientID(NSObject *options, const char *value) {
69
+ RNFBFirebaseOptions(options).clientID = RNFBFirebaseString(value);
70
+ }
71
+
72
+ NSString *RNFBFirebaseOptionsDatabaseURL(NSObject *options) {
73
+ return RNFBFirebaseOptions(options).databaseURL;
74
+ }
75
+
76
+ void RNFBFirebaseOptionsSetDatabaseURL(NSObject *options, const char *value) {
77
+ RNFBFirebaseOptions(options).databaseURL = RNFBFirebaseString(value);
78
+ }
79
+
80
+ NSString *RNFBFirebaseOptionsStorageBucket(NSObject *options) {
81
+ return RNFBFirebaseOptions(options).storageBucket;
82
+ }
83
+
84
+ void RNFBFirebaseOptionsSetStorageBucket(NSObject *options, const char *value) {
85
+ RNFBFirebaseOptions(options).storageBucket = RNFBFirebaseString(value);
86
+ }
87
+
88
+ NSString *RNFBFirebaseOptionsBundleID(NSObject *options) {
89
+ return RNFBFirebaseOptions(options).bundleID;
90
+ }
91
+
92
+ void RNFBFirebaseOptionsSetBundleID(NSObject *options, const char *value) {
93
+ RNFBFirebaseOptions(options).bundleID = RNFBFirebaseString(value);
94
+ }
95
+
96
+ NSString *RNFBFirebaseOptionsAppGroupID(NSObject *options) {
97
+ return RNFBFirebaseOptions(options).appGroupID;
98
+ }
99
+
100
+ void RNFBFirebaseOptionsSetAppGroupID(NSObject *options, const char *value) {
101
+ RNFBFirebaseOptions(options).appGroupID = RNFBFirebaseString(value);
102
+ }
103
+
104
+ NSObject *RNFBFirebaseDefaultApp(void) { return [FIRApp defaultApp]; }
105
+
106
+ NSObject *RNFBFirebaseAppNamed(const char *name) {
107
+ return [FIRApp appNamed:RNFBFirebaseString(name)];
108
+ }
109
+
110
+ NSDictionary<NSString *, id> *RNFBFirebaseAllApps(void) { return [FIRApp allApps]; }
111
+
112
+ void RNFBFirebaseConfigure(void) { [FIRApp configure]; }
113
+
114
+ void RNFBFirebaseConfigureWithOptions(NSObject *options) {
115
+ [FIRApp configureWithOptions:RNFBFirebaseOptions(options)];
116
+ }
117
+
118
+ void RNFBFirebaseConfigureWithName(const char *name, NSObject *options) {
119
+ [FIRApp configureWithName:RNFBFirebaseString(name) options:RNFBFirebaseOptions(options)];
120
+ }
121
+
122
+ NSDictionary<NSString *, id> *RNFBFirebaseSnapshot(NSObject *app) {
123
+ FIRApp *firebaseApp = (FIRApp *)app;
124
+ FIROptions *options = firebaseApp.options;
125
+ return @{
126
+ @"name" : firebaseApp.name,
127
+ @"apiKey" : RNFBFirebaseNilOrString(options.APIKey),
128
+ @"googleAppID" : RNFBFirebaseNilOrString(options.googleAppID),
129
+ @"projectID" : RNFBFirebaseNilOrString(options.projectID),
130
+ @"databaseURL" : RNFBFirebaseNilOrString(options.databaseURL),
131
+ @"storageBucket" : RNFBFirebaseNilOrString(options.storageBucket),
132
+ @"gcmSenderID" : RNFBFirebaseNilOrString(options.GCMSenderID),
133
+ @"clientID" : RNFBFirebaseNilOrString(options.clientID),
134
+ @"isDataCollectionDefaultEnabled" : @(firebaseApp.isDataCollectionDefaultEnabled),
135
+ };
136
+ }
137
+
138
+ BOOL RNFBFirebaseSetDataCollectionDefaultEnabled(BOOL enabled, NSObject *app) {
139
+ if (![app isKindOfClass:[FIRApp class]]) {
140
+ return NO;
141
+ }
142
+ ((FIRApp *)app).dataCollectionDefaultEnabled = enabled;
143
+ return YES;
144
+ }
145
+
146
+ BOOL RNFBFirebaseDeleteApp(NSObject *app, void (^completion)(BOOL)) {
147
+ if (![app isKindOfClass:[FIRApp class]]) {
148
+ return NO;
149
+ }
150
+ [(FIRApp *)app deleteApp:completion];
151
+ return YES;
152
+ }
153
+
154
+ void RNFBFirebaseSetLoggerLevel(NSInteger level) {
155
+ // Unknown raw values pass through. Do not clamp them to FIRLoggerLevelError.
156
+ [[FIRConfiguration sharedInstance] setLoggerLevel:(FIRLoggerLevel)level];
157
+ }
158
+
159
+ void RNFBFirebaseRegisterLibrary(const char *name, const char *version) {
160
+ SEL selector = NSSelectorFromString(@"registerLibrary:withVersion:");
161
+ if (![FIRApp respondsToSelector:selector]) {
162
+ return;
163
+ }
164
+ NSString *libraryName = RNFBFirebaseString(name);
165
+ NSString *libraryVersion = RNFBFirebaseString(version);
166
+ void (*send)(id, SEL, NSString *, NSString *) =
167
+ (void (*)(id, SEL, NSString *, NSString *))objc_msgSend;
168
+ send([FIRApp class], selector, libraryName, libraryVersion);
169
+ }
@@ -0,0 +1,52 @@
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/Foundation.h>
18
+
19
+ NS_ASSUME_NONNULL_BEGIN
20
+
21
+ /// Foundation-only entry points. The implementation file is the only place
22
+ /// that imports the SDK.
23
+ BOOL RNFBFirebaseInstallationsLinked(void);
24
+ NS_RETURNS_RETAINED NSObject *RNFBFirebaseCreateOptions(const char *_Nullable googleAppID,
25
+ const char *_Nullable senderID);
26
+ NSString *_Nullable RNFBFirebaseOptionsAPIKey(NSObject *options);
27
+ void RNFBFirebaseOptionsSetAPIKey(NSObject *options, const char *_Nullable value);
28
+ NSString *_Nullable RNFBFirebaseOptionsProjectID(NSObject *options);
29
+ void RNFBFirebaseOptionsSetProjectID(NSObject *options, const char *_Nullable value);
30
+ NSString *_Nullable RNFBFirebaseOptionsClientID(NSObject *options);
31
+ void RNFBFirebaseOptionsSetClientID(NSObject *options, const char *_Nullable value);
32
+ NSString *_Nullable RNFBFirebaseOptionsDatabaseURL(NSObject *options);
33
+ void RNFBFirebaseOptionsSetDatabaseURL(NSObject *options, const char *_Nullable value);
34
+ NSString *_Nullable RNFBFirebaseOptionsStorageBucket(NSObject *options);
35
+ void RNFBFirebaseOptionsSetStorageBucket(NSObject *options, const char *_Nullable value);
36
+ NSString *_Nullable RNFBFirebaseOptionsBundleID(NSObject *options);
37
+ void RNFBFirebaseOptionsSetBundleID(NSObject *options, const char *_Nullable value);
38
+ NSString *_Nullable RNFBFirebaseOptionsAppGroupID(NSObject *options);
39
+ void RNFBFirebaseOptionsSetAppGroupID(NSObject *options, const char *_Nullable value);
40
+ NSObject *_Nullable RNFBFirebaseDefaultApp(void);
41
+ NSObject *_Nullable RNFBFirebaseAppNamed(const char *name);
42
+ NSDictionary<NSString *, id> *_Nullable RNFBFirebaseAllApps(void);
43
+ void RNFBFirebaseConfigure(void);
44
+ void RNFBFirebaseConfigureWithOptions(NSObject *options);
45
+ void RNFBFirebaseConfigureWithName(const char *name, NSObject *options);
46
+ NSDictionary<NSString *, id> *RNFBFirebaseSnapshot(NSObject *app);
47
+ BOOL RNFBFirebaseSetDataCollectionDefaultEnabled(BOOL enabled, NSObject *app);
48
+ BOOL RNFBFirebaseDeleteApp(NSObject *app, void (^_Nonnull completion)(BOOL success));
49
+ void RNFBFirebaseSetLoggerLevel(NSInteger level);
50
+ void RNFBFirebaseRegisterLibrary(const char *name, const char *version);
51
+
52
+ NS_ASSUME_NONNULL_END