Skip to content

Commit 1cd4e13

Browse files
committed
Merge commit '1bb530b6781be613e049595e84f8189c9cd354e0' into bs-databaseinterop
* commit '1bb530b6781be613e049595e84f8189c9cd354e0': Register Database with Interop Add AuthInterop dependency Have Database register with Interop component container Add weak dependency on Auth Cleaned up imports
2 parents 57321f7 + 1bb530b commit 1cd4e13

File tree

2 files changed

+32
-6
lines changed

2 files changed

+32
-6
lines changed

Firebase/Database/Api/FIRDatabase.m

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,26 +16,34 @@
1616

1717
#import <Foundation/Foundation.h>
1818

19+
#import <FirebaseAuthInterop/FIRAuthInterop.h>
1920
#import <FirebaseCore/FIRAppInternal.h>
21+
#import <FirebaseCore/FIRComponent.h>
22+
#import <FirebaseCore/FIRComponentContainer.h>
23+
#import <FirebaseCore/FIRDependency.h>
2024
#import <FirebaseCore/FIRLogger.h>
25+
#import <FirebaseCore/FIROptions.h>
2126

2227
#import "FIRDatabase.h"
23-
#import "FIRDatabase_Private.h"
28+
#import "FIRDatabaseConfig_Private.h"
2429
#import "FIRDatabaseQuery_Private.h"
30+
#import "FIRDatabaseReference_Private.h"
31+
#import "FIRDatabase_Private.h"
32+
#import "FRepoInfo.h"
2533
#import "FRepoManager.h"
2634
#import "FValidation.h"
27-
#import "FIRDatabaseConfig_Private.h"
28-
#import "FRepoInfo.h"
29-
#import "FIRDatabaseConfig.h"
30-
#import "FIRDatabaseReference_Private.h"
31-
#import <FirebaseCore/FIROptions.h>
3235

3336
@interface FIRDatabase ()
3437
@property (nonatomic, strong) FRepoInfo *repoInfo;
3538
@property (nonatomic, strong) FIRDatabaseConfig *config;
3639
@property (nonatomic, strong) FRepo *repo;
3740
@end
3841

42+
43+
// Empty protocol for use with Interop registration.
44+
@protocol FIRDatabaseNilProtocol
45+
@end
46+
3947
@implementation FIRDatabase
4048

4149
/** A NSMutableDictionary of FirebaseApp name and FRepoInfo to FirebaseDatabase instance. */
@@ -69,6 +77,23 @@ + (void)load {
6977
}
7078
}
7179
}];
80+
[FIRComponentContainer registerAsComponentRegistrant:self];
81+
}
82+
83+
+ (NSArray<FIRComponent *> *)componentsToRegister {
84+
FIRDependency *auth =
85+
[FIRDependency dependencyWithProtocol:@protocol(FIRAuthInterop)
86+
isRequired:NO];
87+
FIRComponentCreationBlock creationBlock =
88+
^id _Nullable(FIRComponentContainer *container, BOOL *isCacheable) {
89+
return [self databaseForApp:container.app];
90+
};
91+
FIRComponent *databaseProvider =
92+
[FIRComponent componentWithProtocol:@protocol(FIRDatabaseNilProtocol)
93+
instantiationTiming:FIRInstantiationTimingLazy
94+
dependencies:@[ auth ]
95+
creationBlock:creationBlock];
96+
return @[ databaseProvider ];
7297
}
7398

7499
/**

FirebaseDatabase.podspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ Simplify your iOS development, grow your user base, and monetize more effectivel
3232
s.libraries = ['c++', 'icucore']
3333
s.frameworks = ['CFNetwork', 'Security', 'SystemConfiguration']
3434
s.dependency 'leveldb-library', '~> 1.18'
35+
s.dependency 'FirebaseAuthInterop', '~> 1.0'
3536
s.dependency 'FirebaseCore', '~> 5.0'
3637
s.pod_target_xcconfig = {
3738
'GCC_PREPROCESSOR_DEFINITIONS' =>

0 commit comments

Comments
 (0)