@react-native-firebase/app 26.4.0 → 27.1.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.
- package/CHANGELOG.md +62 -0
- package/README.md +10 -27
- package/RNFBApp.podspec +13 -5
- package/android/build.gradle +3 -0
- package/android/src/main/java/io/invertase/firebase/common/RNFBHandleCollisionException.kt +29 -0
- package/android/src/main/java/io/invertase/firebase/common/RNFBHandleMap.kt +146 -0
- package/android/src/main/java/io/invertase/firebase/common/TaskExecutorService.kt +156 -0
- package/android/src/main/java/io/invertase/firebase/common/UniversalFirebaseModule.kt +44 -0
- package/android/src/main/java/io/invertase/firebase/common/UniversalFirebasePreferences.kt +100 -0
- package/android/src/reactnative/java/io/invertase/firebase/app/NativeRNFBTurboApp.kt +250 -0
- package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseApp.kt +64 -0
- package/android/src/reactnative/java/io/invertase/firebase/app/{ReactNativeFirebaseAppInitProvider.java → ReactNativeFirebaseAppInitProvider.kt} +3 -4
- package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppPackage.kt +47 -0
- package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppRegistrar.kt +33 -0
- package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseVersion.java +1 -1
- package/android/src/reactnative/java/io/invertase/firebase/common/RCTConvertFirebase.kt +185 -0
- package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEvent.kt +35 -0
- package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitter.kt +662 -0
- package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseJSON.kt +103 -0
- package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseMeta.kt +96 -0
- package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseModule.kt +140 -0
- package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebasePreferences.kt +109 -0
- package/android/src/reactnative/java/io/invertase/firebase/common/SharedUtils.kt +451 -0
- package/android/src/reactnative/java/io/invertase/firebase/interfaces/{ContextProvider.java → ContextProvider.kt} +8 -8
- package/android/src/reactnative/java/io/invertase/firebase/interfaces/{NativeError.java → NativeError.kt} +8 -8
- package/android/src/reactnative/java/io/invertase/firebase/interfaces/{NativeEvent.java → NativeEvent.kt} +6 -6
- package/android/src/reactnative/java/io/invertase/firebase/utils/NativeRNFBTurboUtils.kt +219 -0
- package/android/src/test/java/expo/core/ModuleRegistry.java +9 -0
- package/android/src/test/java/io/invertase/firebase/app/NativeRNFBTurboAppTest.java +182 -59
- package/android/src/test/java/io/invertase/firebase/app/ReactNativeFirebaseAppComponentsJavaCompatibilityTest.java +70 -0
- package/android/src/test/java/io/invertase/firebase/app/ReactNativeFirebaseAppJavaCompatibilityTest.java +60 -0
- package/android/src/test/java/io/invertase/firebase/app/ReactNativeFirebaseAppPackageTest.java +165 -0
- package/android/src/test/java/io/invertase/firebase/app/ReactNativeFirebaseAppTest.kt +167 -0
- package/android/src/test/java/io/invertase/firebase/common/RCTConvertFirebaseJavaCompatibilityTest.java +112 -0
- package/android/src/test/java/io/invertase/firebase/common/RCTConvertFirebaseTest.kt +317 -0
- package/android/src/test/java/io/invertase/firebase/common/RNFBHandleMapTest.kt +309 -0
- package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitterJavaCompatibilityTest.java +176 -0
- package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitterTest.java +143 -12
- package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseEventTest.kt +61 -0
- package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseJSONJavaCompatibilityTest.java +85 -0
- package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseJSONTest.kt +296 -0
- package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseMetaJavaCompatibilityTest.java +67 -0
- package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseMetaTest.kt +246 -0
- package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseModuleTest.kt +254 -0
- package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebasePreferencesJavaCompatibilityTest.java +87 -0
- package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebasePreferencesTest.kt +260 -0
- package/android/src/test/java/io/invertase/firebase/common/SharedUtilsJavaCompatibilityTest.java +255 -0
- package/android/src/test/java/io/invertase/firebase/common/SharedUtilsTest.kt +674 -0
- package/android/src/test/java/io/invertase/firebase/common/TaskExecutorServiceTest.kt +290 -0
- package/android/src/test/java/io/invertase/firebase/common/UniversalFirebaseModuleJavaCompatibilityTest.java +178 -0
- package/android/src/test/java/io/invertase/firebase/common/UniversalFirebasePreferencesJavaCompatibilityTest.java +99 -0
- package/android/src/test/java/io/invertase/firebase/common/UniversalFirebasePreferencesTest.kt +217 -0
- package/android/src/test/java/io/invertase/firebase/commoncompat/ReactNativeFirebaseModuleJavaCompatibilityTest.java +176 -0
- package/android/src/test/java/io/invertase/firebase/commoncompat/ReactNativeFirebaseModuleKotlinCompatibilityTest.kt +52 -0
- package/android/src/test/java/io/invertase/firebase/interfaces/InterfacesJavaCompatibilityTest.java +144 -0
- package/android/src/test/java/io/invertase/firebase/interfaces/NativeEventTest.kt +56 -0
- package/android/src/test/java/io/invertase/firebase/utils/NativeRNFBTurboUtilsTest.java +517 -21
- package/dist/module/FirebaseApp.js +10 -0
- package/dist/module/FirebaseApp.js.map +1 -1
- package/dist/module/common/deeps.js +3 -0
- package/dist/module/common/deeps.js.map +1 -1
- package/dist/module/internal/FirebaseModule.js.map +1 -1
- package/dist/module/internal/RNFBNativeEventEmitter.js +12 -1
- package/dist/module/internal/RNFBNativeEventEmitter.js.map +1 -1
- package/dist/module/internal/SharedEventEmitter.js +3 -1
- package/dist/module/internal/SharedEventEmitter.js.map +1 -1
- package/dist/module/internal/index.js +1 -0
- package/dist/module/internal/index.js.map +1 -1
- package/dist/module/internal/registry/app.js +7 -1
- package/dist/module/internal/registry/app.js.map +1 -1
- package/dist/module/types/app.js.map +1 -1
- package/dist/module/types/internal.js +2 -0
- package/dist/module/version.js +1 -1
- package/dist/typescript/lib/FirebaseApp.d.ts +7 -0
- package/dist/typescript/lib/FirebaseApp.d.ts.map +1 -1
- package/dist/typescript/lib/common/deeps.d.ts.map +1 -1
- package/dist/typescript/lib/internal/FirebaseModule.d.ts +2 -3
- package/dist/typescript/lib/internal/FirebaseModule.d.ts.map +1 -1
- package/dist/typescript/lib/internal/NativeModules.d.ts +4 -1
- package/dist/typescript/lib/internal/NativeModules.d.ts.map +1 -1
- package/dist/typescript/lib/internal/RNFBNativeEventEmitter.d.ts +2 -2
- package/dist/typescript/lib/internal/RNFBNativeEventEmitter.d.ts.map +1 -1
- package/dist/typescript/lib/internal/SharedEventEmitter.d.ts +3 -3
- package/dist/typescript/lib/internal/SharedEventEmitter.d.ts.map +1 -1
- package/dist/typescript/lib/internal/index.d.ts +1 -0
- package/dist/typescript/lib/internal/index.d.ts.map +1 -1
- package/dist/typescript/lib/internal/registry/app.d.ts.map +1 -1
- package/dist/typescript/lib/types/app.d.ts +10 -3
- package/dist/typescript/lib/types/app.d.ts.map +1 -1
- package/dist/typescript/lib/types/internal.d.ts +12 -0
- package/dist/typescript/lib/types/internal.d.ts.map +1 -1
- package/dist/typescript/lib/version.d.ts +1 -1
- package/firebase-schema.json +4 -0
- package/firebase_spm.rb +552 -96
- package/ios/RNFBApp/RCTConvert+FIRApp.h +2 -5
- package/ios/RNFBApp/RCTConvert+FIRApp.m +11 -6
- package/ios/RNFBApp/RCTConvert+FIROptions.h +2 -5
- package/ios/RNFBApp/RCTConvert+FIROptions.m +11 -10
- package/ios/RNFBApp/RCTConvertFIRApp.swift +86 -0
- package/ios/RNFBApp/RCTConvertFIROptions.swift +259 -0
- package/ios/RNFBApp/RNFBAppCustomAuthDomains.swift +63 -0
- package/ios/RNFBApp/RNFBAppInitializeOptionsMapper.swift +113 -0
- package/ios/RNFBApp/RNFBAppLogLevelMapper.swift +53 -0
- package/ios/RNFBApp/RNFBAppModule+CustomAuthDomain.m +35 -0
- package/ios/RNFBApp/RNFBAppModule.h +6 -2
- package/ios/RNFBApp/RNFBAppModule.mm +65 -228
- package/ios/RNFBApp/RNFBAppModuleFirebase.swift +439 -0
- package/ios/RNFBApp/RNFBAppModuleImplementation.h +68 -0
- package/ios/RNFBApp/RNFBAppModuleImplementation.m +195 -0
- package/ios/RNFBApp/RNFBHandleMap.m +27 -56
- package/ios/RNFBApp/RNFBHandleMapStorage.swift +90 -0
- package/ios/RNFBApp/RNFBInitializeAppArguments.swift +82 -0
- package/ios/RNFBApp/RNFBJSON.m +22 -38
- package/ios/RNFBApp/RNFBJSONImplementation.swift +71 -0
- package/ios/RNFBApp/RNFBMeta.m +24 -26
- package/ios/RNFBApp/RNFBMetaStorage.swift +76 -0
- package/ios/RNFBApp/RNFBNullSentinelDecoding.swift +135 -0
- package/ios/RNFBApp/RNFBNullSentinelInterceptor.h +30 -3
- package/ios/RNFBApp/RNFBNullSentinelInterceptor.m +28 -5
- package/ios/RNFBApp/RNFBPreferences.m +22 -20
- package/ios/RNFBApp/RNFBPreferencesStorage.swift +101 -0
- package/ios/RNFBApp/RNFBRCTEventEmitter.m +36 -93
- package/ios/RNFBApp/RNFBRCTEventEmitterCore.swift +161 -0
- package/ios/RNFBApp/RNFBSharedUtils.h +2 -5
- package/ios/RNFBApp/RNFBSharedUtils.m +109 -198
- package/ios/RNFBApp/RNFBSharedUtilsConfig.swift +72 -0
- package/ios/RNFBApp/RNFBSharedUtilsFIRApp.swift +271 -0
- package/ios/RNFBApp/RNFBSharedUtilsFormatting.swift +59 -0
- package/ios/RNFBApp/RNFBSharedUtilsPromiseRejection.swift +88 -0
- package/ios/RNFBApp/RNFBUtilsHelpers.swift +116 -0
- package/ios/RNFBApp/RNFBUtilsModule+Foundation.m +44 -0
- package/ios/RNFBApp/RNFBUtilsModule+PhotoAssets.m +47 -0
- package/ios/RNFBApp/RNFBUtilsModule.h +11 -1
- package/ios/RNFBApp/RNFBUtilsModule.mm +10 -85
- package/ios/RNFBApp/RNFBUtilsModuleImplementation.h +32 -0
- package/ios/RNFBApp/RNFBUtilsModuleImplementation.m +56 -0
- package/ios/RNFBApp/RNFBVersion.m +1 -1
- package/ios/RNFBApp.xcodeproj/project.pbxproj +100 -0
- package/ios/RNFBAppUnitTests/HostStubs/FirebaseCore/FIRApp.m +171 -0
- package/ios/RNFBAppUnitTests/HostStubs/FirebaseCore/FirebaseCore.h +78 -0
- package/ios/RNFBAppUnitTests/HostStubs/FirebaseInstallations/FIRInstallations.m +7 -0
- package/ios/RNFBAppUnitTests/HostStubs/FirebaseInstallations/FirebaseInstallations.h +8 -0
- package/ios/RNFBAppUnitTests/HostStubs/RNFBAppModuleHostStub.m +55 -0
- package/ios/RNFBAppUnitTests/HostStubs/RNFBAppTurboModules.h +89 -0
- package/ios/RNFBAppUnitTests/HostStubs/RNFBAppTurboModules.mm +30 -0
- package/ios/RNFBAppUnitTests/HostStubs/React/RCTBridge.h +19 -0
- package/ios/RNFBAppUnitTests/HostStubs/React/RCTBridge.m +32 -0
- package/ios/RNFBAppUnitTests/HostStubs/React/RCTBridgeModule.h +19 -0
- package/ios/RNFBAppUnitTests/HostStubs/React/RCTConvert.h +28 -0
- package/ios/RNFBAppUnitTests/HostStubs/React/RCTConvert.m +23 -0
- package/ios/RNFBAppUnitTests/HostStubs/React/RCTEventEmitter.h +9 -0
- package/ios/RNFBAppUnitTests/HostStubs/React/RCTInvalidating.h +24 -0
- package/ios/RNFBAppUnitTests/HostStubs/React/RCTUtils.h +9 -0
- package/ios/RNFBAppUnitTests/HostStubs/module.modulemap +13 -0
- package/ios/RNFBAppUnitTests/RCTConvertFIRAppFacadeTests.m +61 -0
- package/ios/RNFBAppUnitTests/RCTConvertFIRAppTests.swift +73 -0
- package/ios/RNFBAppUnitTests/RCTConvertFIROptionsFacadeTests.m +57 -0
- package/ios/RNFBAppUnitTests/RCTConvertFIROptionsTests.swift +243 -0
- package/ios/RNFBAppUnitTests/RNFBAppCustomAuthDomainsFacadeTests.m +73 -0
- package/ios/RNFBAppUnitTests/RNFBAppCustomAuthDomainsTests.swift +70 -0
- package/ios/RNFBAppUnitTests/RNFBAppInitializeOptionsMapperTests.swift +190 -0
- package/ios/RNFBAppUnitTests/RNFBAppLogLevelFacadeTests.m +76 -0
- package/ios/RNFBAppUnitTests/RNFBAppLogLevelMapperTests.swift +59 -0
- package/ios/RNFBAppUnitTests/RNFBAppModuleFirebaseFacadeTests.m +215 -0
- package/ios/RNFBAppUnitTests/RNFBAppModuleFirebaseTests.swift +430 -0
- package/ios/RNFBAppUnitTests/RNFBAppModuleLifecycleTests.m +206 -0
- package/ios/RNFBAppUnitTests/RNFBAppModuleShellTests.mm +367 -0
- package/ios/RNFBAppUnitTests/RNFBAppUnitTests.xcodeproj/project.pbxproj +355 -2
- package/ios/RNFBAppUnitTests/RNFBFirebaseAppClientTests.swift +165 -0
- package/ios/RNFBAppUnitTests/RNFBHandleMapStorageTests.swift +121 -0
- package/ios/RNFBAppUnitTests/RNFBInitializeAppArgumentsTests.swift +256 -0
- package/ios/RNFBAppUnitTests/RNFBJSONImplementationTests.swift +126 -0
- package/ios/RNFBAppUnitTests/RNFBJSONTests.m +172 -0
- package/ios/RNFBAppUnitTests/RNFBMetaStorageTests.swift +106 -0
- package/ios/RNFBAppUnitTests/RNFBMetaTests.m +65 -0
- package/ios/RNFBAppUnitTests/RNFBNullSentinelDecodingTests.swift +286 -0
- package/ios/RNFBAppUnitTests/RNFBNullSentinelInterceptorTests.m +312 -0
- package/ios/RNFBAppUnitTests/RNFBPreferencesStorageTests.swift +105 -0
- package/ios/RNFBAppUnitTests/RNFBPreferencesTests.m +110 -0
- package/ios/RNFBAppUnitTests/RNFBRCTEventEmitterCoreTests.swift +163 -0
- package/ios/RNFBAppUnitTests/RNFBRCTEventEmitterFacadeTests.m +141 -0
- package/ios/RNFBAppUnitTests/RNFBSharedUtilsConfigFacadeTests.m +100 -0
- package/ios/RNFBAppUnitTests/RNFBSharedUtilsConfigTests.swift +234 -0
- package/ios/RNFBAppUnitTests/RNFBSharedUtilsFIRAppFacadeTests.m +145 -0
- package/ios/RNFBAppUnitTests/RNFBSharedUtilsFIRAppTests.swift +173 -0
- package/ios/RNFBAppUnitTests/RNFBSharedUtilsFormattingFacadeTests.m +38 -0
- package/ios/RNFBAppUnitTests/RNFBSharedUtilsFormattingTests.swift +82 -0
- package/ios/RNFBAppUnitTests/RNFBSharedUtilsNullSentinelTests.m +35 -0
- package/ios/RNFBAppUnitTests/RNFBSharedUtilsPromiseRejectionFacadeTests.m +107 -0
- package/ios/RNFBAppUnitTests/RNFBSharedUtilsPromiseRejectionTests.swift +133 -0
- package/ios/RNFBAppUnitTests/RNFBUtilsHelpersTests.swift +144 -0
- package/ios/RNFBAppUnitTests/RNFBUtilsModuleFacadeTests.m +72 -0
- package/ios/RNFBAppUnitTests/RNFBUtilsModuleShellTests.mm +282 -0
- package/ios/RNFBFirebase/Package.swift +53 -0
- package/ios/RNFBFirebase/Sources/RNFBFirebase/RNFBFirebase.swift +285 -0
- package/ios/RNFBFirebase/Sources/RNFBFirebaseBridge/Public/.gitkeep +0 -0
- package/ios/RNFBFirebase/Sources/RNFBFirebaseBridge/RNFBFirebaseBridge.m +169 -0
- package/ios/RNFBFirebase/Sources/RNFBFirebaseBridge/include/RNFBFirebaseBridge.h +52 -0
- package/ios/RNFBFirebaseUnitTests/RNFBAppDynamicFacadeTests.swift +240 -0
- package/{android/src/main/java/io/invertase/firebase/common/RNFBHandleCollisionException.java → ios/RNFBFirebaseUnitTests/RNFBFirebaseClientImport.swift} +23 -14
- package/ios/RNFBFirebaseUnitTests/RNFBFirebaseUnitTests.xcodeproj/project.pbxproj +588 -0
- package/ios/RNFBFirebaseUnitTests/RNFBFirebaseUnitTests.xcodeproj/xcshareddata/xcschemes/RNFBFirebaseUnitTests.xcscheme +83 -0
- package/ios_config.sh +50 -22
- package/lib/FirebaseApp.ts +10 -0
- package/lib/common/deeps.ts +3 -0
- package/lib/internal/FirebaseModule.ts +6 -3
- package/lib/internal/NativeModules.ts +4 -1
- package/lib/internal/RNFBNativeEventEmitter.ts +14 -5
- package/lib/internal/SharedEventEmitter.ts +5 -1
- package/lib/internal/index.ts +1 -0
- package/lib/internal/react-native-vendor-emitter.d.ts +11 -0
- package/lib/internal/registry/app.ts +7 -1
- package/lib/types/app.ts +10 -3
- package/lib/types/internal.ts +19 -0
- package/lib/version.ts +1 -1
- package/package.json +8 -8
- package/plugin/build/ios/appDelegate.js +2 -2
- package/plugin/build/ios/podfile.js +16 -16
- package/plugin/build/pluginConfig.d.ts +4 -2
- package/plugin/src/ios/appDelegate.ts +2 -2
- package/plugin/src/ios/podfile.ts +20 -23
- package/plugin/src/pluginConfig.ts +4 -2
- package/android/src/main/java/io/invertase/firebase/common/RNFBHandleMap.java +0 -150
- package/android/src/main/java/io/invertase/firebase/common/TaskExecutorService.java +0 -148
- package/android/src/main/java/io/invertase/firebase/common/UniversalFirebaseModule.java +0 -62
- package/android/src/main/java/io/invertase/firebase/common/UniversalFirebasePreferences.java +0 -91
- package/android/src/reactnative/java/io/invertase/firebase/app/NativeRNFBTurboApp.java +0 -224
- package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseApp.java +0 -46
- package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppPackage.java +0 -49
- package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppRegistrar.java +0 -35
- package/android/src/reactnative/java/io/invertase/firebase/common/RCTConvertFirebase.java +0 -192
- package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEvent.java +0 -53
- package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitter.java +0 -606
- package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseJSON.java +0 -109
- package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseMeta.java +0 -101
- package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseModule.java +0 -146
- package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebasePreferences.java +0 -96
- package/android/src/reactnative/java/io/invertase/firebase/common/SharedUtils.java +0 -441
- package/android/src/reactnative/java/io/invertase/firebase/utils/NativeRNFBTurboUtils.java +0 -223
- package/android/src/test/java/io/invertase/firebase/common/RNFBHandleMapTest.java +0 -275
- package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseJSONTest.java +0 -108
- 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>)
|
|
File without changes
|
|
@@ -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
|