Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Added initial support for multi Firebase plugins in the same project
Mickey Mokotov committed Dec 7, 2020
1 parent a146969 commit ca569f6
Showing 2 changed files with 26 additions and 7 deletions.
11 changes: 11 additions & 0 deletions src/definitions.ts
Original file line number Diff line number Diff line change
@@ -32,3 +32,14 @@ export interface RCReturnDataArray {
value: any[];
source: string;
}

export interface FirebaseInitOptions {
apiKey: string;
authDomain: string;
databaseURL: string;
projectId: string;
storageBucket: string;
messagingSenderId: string;
appId: string;
measurementId: string;
}
22 changes: 15 additions & 7 deletions src/web.ts
Original file line number Diff line number Diff line change
@@ -4,13 +4,16 @@ import {
RCValueOption,
RCReturnData,
RCReturnDataArray,
FirebaseInitOptions,
} from "./definitions";

declare var window: any;

export class FirebaseRemoteConfigWeb
extends WebPlugin
implements FirebaseRemoteConfigPlugin {
readonly options_missing_mssg = "Firebase options are missing";

public readonly ready: Promise<any>;
private readyResolver: Function;
private remoteConfigRef: any;
@@ -37,19 +40,24 @@ export class FirebaseRemoteConfigWeb
this.configure();
}

initializeFirebase(options: any): Promise<void> {
/**
* Configure and Initialize FirebaseApp if not present
* @param options - web app's Firebase configuration
* @returns firebase analytics object reference
* Platform: Web
*/
initializeFirebase(options: FirebaseInitOptions): Promise<any> {
return new Promise(async (resolve, reject) => {
await this.ready;

if (options && !this.isFirebaseInitialized()) {
const app = window.firebase.initializeApp(options);
this.remoteConfigRef = app.remoteConfig();

resolve();
if (!options) {
reject(this.options_missing_mssg);
return;
}

reject("Firebase App already initialized.");
const app = this.isFirebaseInitialized() ? window.firebase : window.firebase.initializeApp(options);
this.remoteConfigRef = app.remoteConfig();
resolve(this.remoteConfigRef);
});
}

0 comments on commit ca569f6

Please sign in to comment.