@angular/fire
Version:
The official library for Firebase and Angular
92 lines • 9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';
import { getRef } from './utils';
import { createListReference } from './list/create-reference';
import { createObjectReference } from './object/create-reference';
import { FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵAngularFireSchedulers, ɵfirebaseAppFactory, ɵkeepUnstableUntilFirstFactory } from '@angular/fire';
import 'firebase/database';
import * as i0 from "@angular/core";
import * as i1 from "@angular/fire";
/** @type {?} */
export const URL = new InjectionToken('angularfire2.realtimeDatabaseURL');
export class AngularFireDatabase {
/**
* @param {?} options
* @param {?} nameOrConfig
* @param {?} databaseURL
* @param {?} platformId
* @param {?} zone
*/
constructor(options, nameOrConfig, databaseURL,
// tslint:disable-next-line:ban-types
platformId, zone) {
this.schedulers = new ɵAngularFireSchedulers(zone);
this.keepUnstableUntilFirst = ɵkeepUnstableUntilFirstFactory(this.schedulers);
this.database = zone.runOutsideAngular((/**
* @return {?}
*/
() => {
/** @type {?} */
const app = ɵfirebaseAppFactory(options, zone, nameOrConfig);
return app.database(databaseURL || undefined);
}));
}
/**
* @template T
* @param {?} pathOrRef
* @param {?=} queryFn
* @return {?}
*/
list(pathOrRef, queryFn) {
/** @type {?} */
const ref = getRef(this.database, pathOrRef);
/** @type {?} */
let query = ref;
if (queryFn) {
query = queryFn(ref);
}
return createListReference(query, this);
}
/**
* @template T
* @param {?} pathOrRef
* @return {?}
*/
object(pathOrRef) {
/** @type {?} */
const ref = getRef(this.database, pathOrRef);
return createObjectReference(ref, this);
}
/**
* @return {?}
*/
createPushId() {
return this.database.ref().push().key;
}
}
AngularFireDatabase.decorators = [
{ type: Injectable, args: [{
providedIn: 'any'
},] }
];
/** @nocollapse */
AngularFireDatabase.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [FIREBASE_OPTIONS,] }] },
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [FIREBASE_APP_NAME,] }] },
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [URL,] }] },
{ type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },
{ type: NgZone }
];
/** @nocollapse */ AngularFireDatabase.ɵprov = i0.ɵɵdefineInjectable({ factory: function AngularFireDatabase_Factory() { return new AngularFireDatabase(i0.ɵɵinject(i1.FIREBASE_OPTIONS), i0.ɵɵinject(i1.FIREBASE_APP_NAME, 8), i0.ɵɵinject(URL, 8), i0.ɵɵinject(i0.PLATFORM_ID), i0.ɵɵinject(i0.NgZone)); }, token: AngularFireDatabase, providedIn: "any" });
if (false) {
/** @type {?} */
AngularFireDatabase.prototype.database;
/** @type {?} */
AngularFireDatabase.prototype.schedulers;
/** @type {?} */
AngularFireDatabase.prototype.keepUnstableUntilFirst;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBR2hCLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsOEJBQThCLEVBQy9CLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sbUJBQW1CLENBQUM7Ozs7QUFFM0IsTUFBTSxPQUFPLEdBQUcsR0FBRyxJQUFJLGNBQWMsQ0FBUyxrQ0FBa0MsQ0FBQztBQUtqRixNQUFNLE9BQU8sbUJBQW1COzs7Ozs7OztJQU05QixZQUM0QixPQUF3QixFQUNYLFlBQTJELEVBQ3pFLFdBQTBCO0lBQ25ELHFDQUFxQztJQUNoQixVQUFrQixFQUN2QyxJQUFZO1FBRVosSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxzQkFBc0IsR0FBRyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCOzs7UUFBQyxHQUFHLEVBQUU7O2tCQUNwQyxHQUFHLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLENBQUM7WUFDNUQsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxTQUFTLENBQUMsQ0FBQztRQUNoRCxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7Ozs7SUFFRCxJQUFJLENBQUksU0FBd0IsRUFBRSxPQUFpQjs7Y0FDM0MsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQzs7WUFDeEMsS0FBSyxHQUFrQixHQUFHO1FBQzlCLElBQUksT0FBTyxFQUFFO1lBQ1gsS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN0QjtRQUNELE9BQU8sbUJBQW1CLENBQUksS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7Ozs7OztJQUVELE1BQU0sQ0FBSSxTQUF3Qjs7Y0FDMUIsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQztRQUM1QyxPQUFPLHFCQUFxQixDQUFJLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDOzs7O0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDeEMsQ0FBQzs7O1lBMUNGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsS0FBSzthQUNsQjs7Ozs0Q0FRSSxNQUFNLFNBQUMsZ0JBQWdCOzRDQUN2QixRQUFRLFlBQUksTUFBTSxTQUFDLGlCQUFpQjs0Q0FDcEMsUUFBUSxZQUFJLE1BQU0sU0FBQyxHQUFHO1lBRVUsTUFBTSx1QkFBdEMsTUFBTSxTQUFDLFdBQVc7WUFsQ3NCLE1BQU07Ozs7O0lBd0JqRCx1Q0FBNEM7O0lBRTVDLHlDQUFtRDs7SUFDbkQscURBQWtGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgTmdab25lLCBPcHRpb25hbCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlTGlzdCwgQW5ndWxhckZpcmVPYmplY3QsIERhdGFiYXNlUXVlcnksIFBhdGhSZWZlcmVuY2UsIFF1ZXJ5Rm4gfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZ2V0UmVmIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBjcmVhdGVMaXN0UmVmZXJlbmNlIH0gZnJvbSAnLi9saXN0L2NyZWF0ZS1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgY3JlYXRlT2JqZWN0UmVmZXJlbmNlIH0gZnJvbSAnLi9vYmplY3QvY3JlYXRlLXJlZmVyZW5jZSc7XG5pbXBvcnQge1xuICBGSVJFQkFTRV9BUFBfTkFNRSxcbiAgRklSRUJBU0VfT1BUSU9OUyxcbiAgRmlyZWJhc2VBcHBDb25maWcsXG4gIEZpcmViYXNlT3B0aW9ucyxcbiAgybVBbmd1bGFyRmlyZVNjaGVkdWxlcnMsXG4gIMm1ZmlyZWJhc2VBcHBGYWN0b3J5LFxuICDJtWtlZXBVbnN0YWJsZVVudGlsRmlyc3RGYWN0b3J5XG59IGZyb20gJ0Bhbmd1bGFyL2ZpcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGF0YWJhc2UgfSBmcm9tICdmaXJlYmFzZS9hcHAnO1xuaW1wb3J0ICdmaXJlYmFzZS9kYXRhYmFzZSc7XG5cbmV4cG9ydCBjb25zdCBVUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignYW5ndWxhcmZpcmUyLnJlYWx0aW1lRGF0YWJhc2VVUkwnKTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAnYW55J1xufSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFyRmlyZURhdGFiYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGFiYXNlOiBkYXRhYmFzZS5EYXRhYmFzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc2NoZWR1bGVyczogybVBbmd1bGFyRmlyZVNjaGVkdWxlcnM7XG4gIHB1YmxpYyByZWFkb25seSBrZWVwVW5zdGFibGVVbnRpbEZpcnN0OiA8VD4ob2JzJDogT2JzZXJ2YWJsZTxUPikgPT4gT2JzZXJ2YWJsZTxUPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEZJUkVCQVNFX09QVElPTlMpIG9wdGlvbnM6IEZpcmViYXNlT3B0aW9ucyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEZJUkVCQVNFX0FQUF9OQU1FKSBuYW1lT3JDb25maWc6IHN0cmluZyB8IEZpcmViYXNlQXBwQ29uZmlnIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFVSTCkgZGF0YWJhc2VVUkw6IHN0cmluZyB8IG51bGwsXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmJhbi10eXBlc1xuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQ6IE9iamVjdCxcbiAgICB6b25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgdGhpcy5zY2hlZHVsZXJzID0gbmV3IMm1QW5ndWxhckZpcmVTY2hlZHVsZXJzKHpvbmUpO1xuICAgIHRoaXMua2VlcFVuc3RhYmxlVW50aWxGaXJzdCA9IMm1a2VlcFVuc3RhYmxlVW50aWxGaXJzdEZhY3RvcnkodGhpcy5zY2hlZHVsZXJzKTtcblxuICAgIHRoaXMuZGF0YWJhc2UgPSB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGNvbnN0IGFwcCA9IMm1ZmlyZWJhc2VBcHBGYWN0b3J5KG9wdGlvbnMsIHpvbmUsIG5hbWVPckNvbmZpZyk7XG4gICAgICByZXR1cm4gYXBwLmRhdGFiYXNlKGRhdGFiYXNlVVJMIHx8IHVuZGVmaW5lZCk7XG4gICAgfSk7XG4gIH1cblxuICBsaXN0PFQ+KHBhdGhPclJlZjogUGF0aFJlZmVyZW5jZSwgcXVlcnlGbj86IFF1ZXJ5Rm4pOiBBbmd1bGFyRmlyZUxpc3Q8VD4ge1xuICAgIGNvbnN0IHJlZiA9IGdldFJlZih0aGlzLmRhdGFiYXNlLCBwYXRoT3JSZWYpO1xuICAgIGxldCBxdWVyeTogRGF0YWJhc2VRdWVyeSA9IHJlZjtcbiAgICBpZiAocXVlcnlGbikge1xuICAgICAgcXVlcnkgPSBxdWVyeUZuKHJlZik7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVMaXN0UmVmZXJlbmNlPFQ+KHF1ZXJ5LCB0aGlzKTtcbiAgfVxuXG4gIG9iamVjdDxUPihwYXRoT3JSZWY6IFBhdGhSZWZlcmVuY2UpOiBBbmd1bGFyRmlyZU9iamVjdDxUPiB7XG4gICAgY29uc3QgcmVmID0gZ2V0UmVmKHRoaXMuZGF0YWJhc2UsIHBhdGhPclJlZik7XG4gICAgcmV0dXJuIGNyZWF0ZU9iamVjdFJlZmVyZW5jZTxUPihyZWYsIHRoaXMpO1xuICB9XG5cbiAgY3JlYXRlUHVzaElkKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGFiYXNlLnJlZigpLnB1c2goKS5rZXk7XG4gIH1cblxufVxuXG5leHBvcnQge1xuICBQYXRoUmVmZXJlbmNlLFxuICBEYXRhYmFzZVNuYXBzaG90LFxuICBDaGlsZEV2ZW50LFxuICBMaXN0ZW5FdmVudCxcbiAgUXVlcnlGbixcbiAgQW5ndWxhckZpcmVMaXN0LFxuICBBbmd1bGFyRmlyZU9iamVjdCxcbiAgQW5ndWxhckZpcmVBY3Rpb24sXG4gIEFjdGlvbixcbiAgU25hcHNob3RBY3Rpb25cbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbiJdfQ==