@smartface/plugin-firebase
Version:
Smartface Firebase Plugin for Smartface Native Framework
116 lines • 3.99 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var invocation_1 = __importDefault(require("@smartface/native/util/iOS/invocation"));
var Analytics_1 = __importDefault(require("./Analytics"));
var App_1 = __importDefault(require("./App"));
var Auth_1 = __importDefault(require("./Auth"));
var Messaging_1 = __importDefault(require("./Messaging"));
var Firebase = /** @class */ (function () {
function Firebase() {
}
/**
* Initialize your SDK
* @method initializeApp
* @static
* @public
* @param {Object} config
* @param {IO.File} config.iosFile - iOS plist file
* @param {String} name(Optional)
* @example
* import Firebase from '@smartace/plugin-firebase';
* const File = require('@smartface/native/io/file');
*
* var iOSPlistFile = new File({
* path: 'assets://GoogleService-Info.plist'
* });
* var firebaseConfig = {
* iosFile : iOSPlistFile
* };
* Firebase.initializeApp(firebaseConfig);
*/
Firebase.initializeApp = function (config, name) {
var _a;
if ((_a = config === null || config === void 0 ? void 0 : config.iosFile) === null || _a === void 0 ? void 0 : _a.exists) {
// @ts-ignore
var pathPlist = config.iosFile.nativeObject.getActualPath();
var alloc = invocation_1.default.invokeClassMethod('FIROptions', 'alloc', [], 'id');
// @ts-ignore
var argPathPlist = new invocation_1.default.Argument({
type: 'NSString',
value: pathPlist
});
var firOptions = invocation_1.default.invokeInstanceMethod(alloc, 'initWithContentsOfFile:', [argPathPlist], 'NSObject');
var nativeFirebaseApp = void 0;
if (name) {
App_1.default.ios.native.configureWithNameOptions(name, firOptions);
nativeFirebaseApp = App_1.default.ios.native.appNamed(name);
}
else {
App_1.default.ios.native.configureWithOptions(firOptions);
nativeFirebaseApp = App_1.default.ios.native.defaultApp();
}
return new App_1.default(nativeFirebaseApp);
}
};
/**
* When called with no arguments, the default app is returned
* @method app
* @static
* @param {string} [name] - When an app name is provided, the app corresponding to that name is returned.
* @public
* @returns {FirebaseApp}
*/
Firebase.app = function (name) {
var nativeFirebaseApp;
if (name) {
nativeFirebaseApp = App_1.default.ios.native.appNamed(name);
}
else {
nativeFirebaseApp = App_1.default.ios.native.defaultApp();
}
return new App_1.default(nativeFirebaseApp);
};
/**
* Gets the FirebaseApp Array.
* @method apps
* @static
* @public
* @returns {FirebaseApp[]} apps
*/
Firebase.apps = function () {
var apps = App_1.default.ios.native.allApps();
var appArray = [];
if (!apps) {
return appArray;
}
var keys = Object.keys(apps);
for (var i in keys) {
appArray.push(new App_1.default(apps[keys[i]]));
}
return appArray;
};
Firebase.auth = function (firebaseApp) {
return new Auth_1.default(firebaseApp);
};
/**
* Firebase Analytics service
* @static
* @public
* @property {object}
*/
Firebase.analytics = Analytics_1.default;
/**
* Gets the messaging service.
* @property {object}
* @static
* @readonly
* @public
*/
Firebase.messaging = Messaging_1.default;
return Firebase;
}());
exports.default = Firebase;
//# sourceMappingURL=firebase-iOS.js.map