@tangential/firebase-util
Version:
Utility classes and shared functionality for Tangential services that use Firebase.
40 lines • 4.98 kB
JavaScript
import { Injectable } from '@angular/core';
import { getApp, initializeApp } from "firebase/app";
import { getDatabase } from 'firebase/database';
import { FirebaseConfig } from './firebase-config';
import * as i0 from "@angular/core";
import * as i1 from "./firebase-config";
/**
* With the new function route in Firebase 9, this is basically useless. Possibly worse than useless given the complications that
* injecting multiple providers involve.
*/
export class FirebaseProvider {
constructor(config) {
this.config = config;
const name = 'defaultDb';
if (!config || !config.apiKey) {
console.log('FirebaseProvider', 'constructor', config);
throw new Error('FirebaseProvider requires an instance of FirebaseConfig to be set as a provider in your module.');
}
try {
this.app = initializeApp(config, name);
}
catch (e) {
// re-init happens in unit tests.
console.log("FirebaseProvider', 'Reinitializing firebase - if you're not running unit tests this is bad.");
this.app = getApp(name);
}
}
/**
* refactoring stub so we can inline later, hopefully.
*/
getDatabase() {
return getDatabase(this.app);
}
}
FirebaseProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FirebaseProvider, deps: [{ token: i1.FirebaseConfig }], target: i0.ɵɵFactoryTarget.Injectable });
FirebaseProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FirebaseProvider });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FirebaseProvider, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.FirebaseConfig }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nZW50aWFsL2ZpcmViYXNlLXV0aWwvc3JjL2xpYi9maXJlYmFzZS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFBO0FBSXhDLE9BQU8sRUFBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUE7OztBQUVoRDs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQW9CLE1BQXNCO1FBQXRCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3hDLE1BQU0sSUFBSSxHQUFVLFdBQVcsQ0FBQTtRQUUvQixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUN0RCxNQUFNLElBQUksS0FBSyxDQUFDLGlHQUFpRyxDQUFDLENBQUE7U0FDbkg7UUFDRCxJQUFJO1lBQ0YsSUFBSSxDQUFDLEdBQUcsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3hDO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixpQ0FBaUM7WUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2RkFBNkYsQ0FBQyxDQUFBO1lBQzFHLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQ3hCO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM5QixDQUFDOzs4R0F6QlUsZ0JBQWdCO2tIQUFoQixnQkFBZ0I7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHtGaXJlYmFzZUFwcH0gZnJvbSAnQGZpcmViYXNlL2FwcCdcbmltcG9ydCB7RGF0YWJhc2V9IGZyb20gJ0BmaXJlYmFzZS9kYXRhYmFzZSdcbmltcG9ydCB7Z2V0QXBwLCBpbml0aWFsaXplQXBwIH0gZnJvbSBcImZpcmViYXNlL2FwcFwiO1xuaW1wb3J0IHsgZ2V0RGF0YWJhc2UgfSBmcm9tICdmaXJlYmFzZS9kYXRhYmFzZSc7XG5cbmltcG9ydCB7RmlyZWJhc2VDb25maWd9IGZyb20gJy4vZmlyZWJhc2UtY29uZmlnJ1xuXG4vKipcbiAqIFdpdGggdGhlIG5ldyBmdW5jdGlvbiByb3V0ZSBpbiBGaXJlYmFzZSA5LCB0aGlzIGlzIGJhc2ljYWxseSB1c2VsZXNzLiBQb3NzaWJseSB3b3JzZSB0aGFuIHVzZWxlc3MgZ2l2ZW4gdGhlIGNvbXBsaWNhdGlvbnMgdGhhdFxuICogaW5qZWN0aW5nIG11bHRpcGxlIHByb3ZpZGVycyBpbnZvbHZlLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmlyZWJhc2VQcm92aWRlciB7XG5cbiAgcHVibGljIGFwcDogRmlyZWJhc2VBcHBcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZzogRmlyZWJhc2VDb25maWcpIHtcbiAgICBjb25zdCBuYW1lOnN0cmluZyA9ICdkZWZhdWx0RGInXG5cbiAgICBpZiAoIWNvbmZpZyB8fCAhY29uZmlnLmFwaUtleSkge1xuICAgICAgY29uc29sZS5sb2coJ0ZpcmViYXNlUHJvdmlkZXInLCAnY29uc3RydWN0b3InLCBjb25maWcpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpcmViYXNlUHJvdmlkZXIgcmVxdWlyZXMgYW4gaW5zdGFuY2Ugb2YgRmlyZWJhc2VDb25maWcgdG8gYmUgc2V0IGFzIGEgcHJvdmlkZXIgaW4geW91ciBtb2R1bGUuJylcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuYXBwID0gaW5pdGlhbGl6ZUFwcChjb25maWcsIG5hbWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIHJlLWluaXQgaGFwcGVucyBpbiB1bml0IHRlc3RzLlxuICAgICAgY29uc29sZS5sb2coXCJGaXJlYmFzZVByb3ZpZGVyJywgJ1JlaW5pdGlhbGl6aW5nIGZpcmViYXNlIC0gaWYgeW91J3JlIG5vdCBydW5uaW5nIHVuaXQgdGVzdHMgdGhpcyBpcyBiYWQuXCIpXG4gICAgICB0aGlzLmFwcCA9IGdldEFwcChuYW1lKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiByZWZhY3RvcmluZyBzdHViIHNvIHdlIGNhbiBpbmxpbmUgbGF0ZXIsIGhvcGVmdWxseS5cbiAgICovXG4gIGdldERhdGFiYXNlKCk6IERhdGFiYXNle1xuICAgIHJldHVybiBnZXREYXRhYmFzZSh0aGlzLmFwcClcbiAgfVxufVxuIl19