react-native-firebase-compiled
Version:
A well tested, feature rich Firebase implementation for React Native, supporting iOS & Android. Individual module support for Admob, Analytics, Auth, Crash Reporting, Cloud Firestore, Database, Dynamic Links, Functions, Messaging (FCM), Remote Config, Sto
116 lines (102 loc) • 4.34 kB
JavaScript
import { NativeModules } from 'react-native';
import APPS from '../../utils/apps';
import INTERNALS from '../../utils/internals';
import App from './app';
import VERSION from '../../version'; // module imports
import { statics as AdMobStatics, MODULE_NAME as AdmobModuleName } from '../admob';
import { statics as AuthStatics, MODULE_NAME as AuthModuleName } from '../auth';
import { statics as AnalyticsStatics, MODULE_NAME as AnalyticsModuleName } from '../analytics';
import { statics as ConfigStatics, MODULE_NAME as ConfigModuleName } from '../config';
import { statics as CrashlyticsStatics, MODULE_NAME as CrashlyticsModuleName } from '../crashlytics';
import { statics as DatabaseStatics, MODULE_NAME as DatabaseModuleName } from '../database';
import { statics as FirestoreStatics, MODULE_NAME as FirestoreModuleName } from '../firestore';
import { statics as FunctionsStatics, MODULE_NAME as FunctionsModuleName } from '../functions';
import { statics as InstanceIdStatics, MODULE_NAME as InstanceIdModuleName } from '../iid';
import { statics as InvitesStatics, MODULE_NAME as InvitesModuleName } from '../invites';
import { statics as LinksStatics, MODULE_NAME as LinksModuleName } from '../links';
import { statics as MessagingStatics, MODULE_NAME as MessagingModuleName } from '../messaging';
import { statics as NotificationsStatics, MODULE_NAME as NotificationsModuleName } from '../notifications';
import { statics as PerformanceStatics, MODULE_NAME as PerfModuleName } from '../perf';
import { statics as StorageStatics, MODULE_NAME as StorageModuleName } from '../storage';
import { statics as UtilsStatics, MODULE_NAME as UtilsModuleName } from '../utils';
const FirebaseCoreModule = NativeModules.RNFirebase;
class Firebase {
constructor() {
if (!FirebaseCoreModule) {
throw new Error(INTERNALS.STRINGS.ERROR_MISSING_CORE);
}
APPS.initializeNativeApps(); // modules
this.admob = APPS.moduleAndStatics('admob', AdMobStatics, AdmobModuleName);
this.analytics = APPS.moduleAndStatics('analytics', AnalyticsStatics, AnalyticsModuleName);
this.auth = APPS.moduleAndStatics('auth', AuthStatics, AuthModuleName);
this.config = APPS.moduleAndStatics('config', ConfigStatics, ConfigModuleName);
this.crashlytics = APPS.moduleAndStatics('crashlytics', CrashlyticsStatics, CrashlyticsModuleName);
this.database = APPS.moduleAndStatics('database', DatabaseStatics, DatabaseModuleName);
this.firestore = APPS.moduleAndStatics('firestore', FirestoreStatics, FirestoreModuleName);
this.functions = APPS.moduleAndStatics('functions', FunctionsStatics, FunctionsModuleName);
this.iid = APPS.moduleAndStatics('iid', InstanceIdStatics, InstanceIdModuleName);
this.invites = APPS.moduleAndStatics('invites', InvitesStatics, InvitesModuleName);
this.links = APPS.moduleAndStatics('links', LinksStatics, LinksModuleName);
this.messaging = APPS.moduleAndStatics('messaging', MessagingStatics, MessagingModuleName);
this.notifications = APPS.moduleAndStatics('notifications', NotificationsStatics, NotificationsModuleName);
this.perf = APPS.moduleAndStatics('perf', PerformanceStatics, PerfModuleName);
this.storage = APPS.moduleAndStatics('storage', StorageStatics, StorageModuleName);
this.utils = APPS.moduleAndStatics('utils', UtilsStatics, UtilsModuleName);
}
/**
* Web SDK initializeApp
*
* @param options
* @param name
* @return {*}
*/
initializeApp(options, name) {
return APPS.initializeApp(options, name);
}
/**
* Retrieves a Firebase app instance.
*
* When called with no arguments, the default app is returned.
* When an app name is provided, the app corresponding to that name is returned.
*
* @param name
* @return {*}
*/
app(name) {
return APPS.app(name);
}
/**
* A (read-only) array of all initialized apps.
* @return {Array}
*/
get apps() {
return APPS.apps();
}
/**
* The current SDK version.
* @return {string}
*/
get SDK_VERSION() {
return VERSION;
}
}
const firebaseApp = new Firebase();
export default firebaseApp;
export const {
admob,
analytics,
auth,
config,
crashlytics,
database,
firestore,
functions,
iid,
invites,
links,
messaging,
notifications,
perf,
storage,
utils
} = firebaseApp;