diff --git a/lib/modules/admob/index.js b/lib/modules/admob/index.js index 2e7fd4b7..6c6e357d 100644 --- a/lib/modules/admob/index.js +++ b/lib/modules/admob/index.js @@ -43,6 +43,7 @@ export default class AdMob extends ModuleBase { super(app, { events: NATIVE_EVENTS, moduleName: MODULE_NAME, + multiApp: false, namespace: NAMESPACE, }); diff --git a/lib/modules/analytics/index.js b/lib/modules/analytics/index.js index 44d8464f..e45678ae 100644 --- a/lib/modules/analytics/index.js +++ b/lib/modules/analytics/index.js @@ -32,6 +32,7 @@ export default class Analytics extends ModuleBase { constructor(app: App) { super(app, { moduleName: MODULE_NAME, + multiApp: false, namespace: NAMESPACE, }); } diff --git a/lib/modules/auth/index.js b/lib/modules/auth/index.js index 5568aeda..3151aac4 100644 --- a/lib/modules/auth/index.js +++ b/lib/modules/auth/index.js @@ -44,6 +44,7 @@ export default class Auth extends ModuleBase { super(app, { events: NATIVE_EVENTS, moduleName: MODULE_NAME, + multiApp: true, namespace: NAMESPACE, }); this._user = null; diff --git a/lib/modules/config/index.js b/lib/modules/config/index.js index ab34b94b..bede5a48 100644 --- a/lib/modules/config/index.js +++ b/lib/modules/config/index.js @@ -28,6 +28,7 @@ export default class RemoteConfig extends ModuleBase { constructor(app: App) { super(app, { moduleName: MODULE_NAME, + multiApp: false, namespace: NAMESPACE, }); this._developerModeEnabled = false; diff --git a/lib/modules/crash/index.js b/lib/modules/crash/index.js index 48fbbea4..314d910a 100644 --- a/lib/modules/crash/index.js +++ b/lib/modules/crash/index.js @@ -15,6 +15,7 @@ export default class Crash extends ModuleBase { constructor(app: App) { super(app, { moduleName: MODULE_NAME, + multiApp: false, namespace: NAMESPACE, }); } diff --git a/lib/modules/database/index.js b/lib/modules/database/index.js index 42b25cbc..d2fa1da0 100644 --- a/lib/modules/database/index.js +++ b/lib/modules/database/index.js @@ -31,6 +31,7 @@ export default class Database extends ModuleBase { super(app, { events: NATIVE_EVENTS, moduleName: MODULE_NAME, + multiApp: true, namespace: NAMESPACE, }); this._transactionHandler = new TransactionHandler(this); diff --git a/lib/modules/fabric/crashlytics/index.js b/lib/modules/fabric/crashlytics/index.js index 789c9af8..b95b9d2d 100644 --- a/lib/modules/fabric/crashlytics/index.js +++ b/lib/modules/fabric/crashlytics/index.js @@ -14,6 +14,7 @@ export default class Crashlytics extends ModuleBase { constructor(app: App) { super(app, { moduleName: MODULE_NAME, + multiApp: false, namespace: NAMESPACE, }); } diff --git a/lib/modules/firestore/index.js b/lib/modules/firestore/index.js index 7061ed4b..029b002e 100644 --- a/lib/modules/firestore/index.js +++ b/lib/modules/firestore/index.js @@ -52,6 +52,7 @@ export default class Firestore extends ModuleBase { super(app, { events: NATIVE_EVENTS, moduleName: MODULE_NAME, + multiApp: true, namespace: NAMESPACE, }); this._referencePath = new Path([]); diff --git a/lib/modules/links/index.js b/lib/modules/links/index.js index 1ca4f3ca..a4c36211 100644 --- a/lib/modules/links/index.js +++ b/lib/modules/links/index.js @@ -75,6 +75,7 @@ export default class Links extends ModuleBase { super(app, { events: NATIVE_EVENTS, moduleName: MODULE_NAME, + multiApp: false, namespace: NAMESPACE, }); } diff --git a/lib/modules/messaging/index.js b/lib/modules/messaging/index.js index 0686f860..5136cf98 100644 --- a/lib/modules/messaging/index.js +++ b/lib/modules/messaging/index.js @@ -91,6 +91,7 @@ export default class Messaging extends ModuleBase { super(app, { events: NATIVE_EVENTS, moduleName: MODULE_NAME, + multiApp: false, namespace: NAMESPACE, }); } diff --git a/lib/modules/perf/index.js b/lib/modules/perf/index.js index 165919ad..8b0eac38 100644 --- a/lib/modules/perf/index.js +++ b/lib/modules/perf/index.js @@ -15,6 +15,7 @@ export default class PerformanceMonitoring extends ModuleBase { constructor(app: App) { super(app, { moduleName: MODULE_NAME, + multiApp: false, namespace: NAMESPACE, }); } diff --git a/lib/modules/storage/index.js b/lib/modules/storage/index.js index f0f86282..8e372619 100644 --- a/lib/modules/storage/index.js +++ b/lib/modules/storage/index.js @@ -32,6 +32,7 @@ export default class Storage extends ModuleBase { super(app, { events: NATIVE_EVENTS, moduleName: MODULE_NAME, + multiApp: true, namespace: NAMESPACE, }); diff --git a/lib/modules/utils/index.js b/lib/modules/utils/index.js index d6629bb0..6991e37f 100644 --- a/lib/modules/utils/index.js +++ b/lib/modules/utils/index.js @@ -25,6 +25,7 @@ export default class RNFirebaseUtils extends ModuleBase { constructor(app: App) { super(app, { moduleName: MODULE_NAME, + multiApp: false, namespace: NAMESPACE, }); } diff --git a/lib/types/index.js b/lib/types/index.js index 31588854..32299af1 100644 --- a/lib/types/index.js +++ b/lib/types/index.js @@ -43,6 +43,7 @@ export type FirebaseModule = $Subtype; export type FirebaseModuleConfig = { events?: string[], moduleName: FirebaseModuleName, + multiApp: boolean, namespace: FirebaseNamespace, } diff --git a/lib/utils/native.js b/lib/utils/native.js index ed728eb1..274862c6 100644 --- a/lib/utils/native.js +++ b/lib/utils/native.js @@ -8,14 +8,6 @@ import INTERNALS from './internals'; import type ModuleBase from './ModuleBase'; import type { FirebaseModuleConfig } from '../types'; -// Firebase Native SDKs that support multiple app instances -const MULTI_APP_MODULES = [ - 'RNFirebaseAuth', - 'RNFirebaseDatabase', - 'RNFirebaseFirestore', - 'RNFirebaseStorage', -]; - const NATIVE_MODULES: { [string]: Object } = {}; /** @@ -45,7 +37,7 @@ export const getNativeModule = (module: ModuleBase): Object => { }; export const initialiseNativeModule = (module: ModuleBase, config: FirebaseModuleConfig): Object => { - const { moduleName, namespace } = config; + const { moduleName, multiApp, namespace } = config; const nativeModule = NativeModules[moduleName]; const key = getModuleKey(module); @@ -55,10 +47,10 @@ export const initialiseNativeModule = (module: ModuleBase, config: FirebaseModul // used by the modules that extend ModuleBase // to access their native module counterpart - if (!MULTI_APP_MODULES.includes(moduleName)) { - NATIVE_MODULES[key] = nativeModule; - } else { + if (multiApp) { NATIVE_MODULES[key] = nativeWithApp(module.app.name, nativeModule); + } else { + NATIVE_MODULES[key] = nativeModule; } initialiseNativeModuleEventEmitter(module, config);