@angular/fire
Version:
The official library for Firebase and Angular
52 lines • 4.63 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { map } from 'rxjs/operators';
import { createObjectSnapshotChanges } from './snapshot-changes';
/**
* @template T
* @param {?} query
* @param {?} afDatabase
* @return {?}
*/
export function createObjectReference(query, afDatabase) {
return {
query,
/**
* @template T
* @return {?}
*/
snapshotChanges() {
return createObjectSnapshotChanges(query, afDatabase.schedulers.outsideAngular)().pipe(afDatabase.keepUnstableUntilFirst);
},
/**
* @param {?} data
* @return {?}
*/
update(data) { return (/** @type {?} */ (query.ref.update((/** @type {?} */ (data))))); },
/**
* @param {?} data
* @return {?}
*/
set(data) { return (/** @type {?} */ (query.ref.set(data))); },
/**
* @return {?}
*/
remove() { return (/** @type {?} */ (query.ref.remove())); },
/**
* @template T
* @return {?}
*/
valueChanges() {
/** @type {?} */
const snapshotChanges$ = createObjectSnapshotChanges(query, afDatabase.schedulers.outsideAngular)();
return snapshotChanges$.pipe(afDatabase.keepUnstableUntilFirst, map((/**
* @param {?} action
* @return {?}
*/
action => action.payload.exists() ? (/** @type {?} */ (action.payload.val())) : null)));
},
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlZmVyZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9vYmplY3QvY3JlYXRlLXJlZmVyZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7O0FBR2pFLE1BQU0sVUFBVSxxQkFBcUIsQ0FBUyxLQUFvQixFQUFFLFVBQStCO0lBQ2pHLE9BQU87UUFDTCxLQUFLOzs7OztRQUNMLGVBQWU7WUFDYixPQUFPLDJCQUEyQixDQUFJLEtBQUssRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUN2RixVQUFVLENBQUMsc0JBQXNCLENBQ2xDLENBQUM7UUFDSixDQUFDOzs7OztRQUNELE1BQU0sQ0FBQyxJQUFnQixJQUFJLE9BQU8sbUJBQUEsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsbUJBQUEsSUFBSSxFQUFPLENBQUMsRUFBaUIsQ0FBQyxDQUFDLENBQUM7Ozs7O1FBQ25GLEdBQUcsQ0FBQyxJQUFPLElBQUksT0FBTyxtQkFBQSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBaUIsQ0FBQyxDQUFDLENBQUM7Ozs7UUFDN0QsTUFBTSxLQUFLLE9BQU8sbUJBQUEsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBaUIsQ0FBQyxDQUFDLENBQUM7Ozs7O1FBQ3hELFlBQVk7O2tCQUNKLGdCQUFnQixHQUFHLDJCQUEyQixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ25HLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUMxQixVQUFVLENBQUMsc0JBQXNCLEVBQ2pDLEdBQUc7Ozs7WUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLG1CQUFBLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQzFFLENBQUM7UUFDSixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBbmd1bGFyRmlyZU9iamVjdCwgRGF0YWJhc2VRdWVyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlT2JqZWN0U25hcHNob3RDaGFuZ2VzIH0gZnJvbSAnLi9zbmFwc2hvdC1jaGFuZ2VzJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlRGF0YWJhc2UgfSBmcm9tICcuLi9kYXRhYmFzZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVPYmplY3RSZWZlcmVuY2U8VD0gYW55PihxdWVyeTogRGF0YWJhc2VRdWVyeSwgYWZEYXRhYmFzZTogQW5ndWxhckZpcmVEYXRhYmFzZSk6IEFuZ3VsYXJGaXJlT2JqZWN0PFQ+IHtcbiAgcmV0dXJuIHtcbiAgICBxdWVyeSxcbiAgICBzbmFwc2hvdENoYW5nZXM8VD4oKSB7XG4gICAgICByZXR1cm4gY3JlYXRlT2JqZWN0U25hcHNob3RDaGFuZ2VzPFQ+KHF1ZXJ5LCBhZkRhdGFiYXNlLnNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpKCkucGlwZShcbiAgICAgICAgYWZEYXRhYmFzZS5rZWVwVW5zdGFibGVVbnRpbEZpcnN0XG4gICAgICApO1xuICAgIH0sXG4gICAgdXBkYXRlKGRhdGE6IFBhcnRpYWw8VD4pIHsgcmV0dXJuIHF1ZXJ5LnJlZi51cGRhdGUoZGF0YSBhcyBhbnkpIGFzIFByb21pc2U8dm9pZD47IH0sXG4gICAgc2V0KGRhdGE6IFQpIHsgcmV0dXJuIHF1ZXJ5LnJlZi5zZXQoZGF0YSkgYXMgUHJvbWlzZTx2b2lkPjsgfSxcbiAgICByZW1vdmUoKSB7IHJldHVybiBxdWVyeS5yZWYucmVtb3ZlKCkgYXMgUHJvbWlzZTx2b2lkPjsgfSxcbiAgICB2YWx1ZUNoYW5nZXM8VD4oKSB7XG4gICAgICBjb25zdCBzbmFwc2hvdENoYW5nZXMkID0gY3JlYXRlT2JqZWN0U25hcHNob3RDaGFuZ2VzKHF1ZXJ5LCBhZkRhdGFiYXNlLnNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpKCk7XG4gICAgICByZXR1cm4gc25hcHNob3RDaGFuZ2VzJC5waXBlKFxuICAgICAgICBhZkRhdGFiYXNlLmtlZXBVbnN0YWJsZVVudGlsRmlyc3QsXG4gICAgICAgIG1hcChhY3Rpb24gPT4gYWN0aW9uLnBheWxvYWQuZXhpc3RzKCkgPyBhY3Rpb24ucGF5bG9hZC52YWwoKSBhcyBUIDogbnVsbClcbiAgICAgICk7XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==