@angular/fire
Version:
The official Angular library for Firebase.
19 lines • 3.84 kB
JavaScript
import { map } from 'rxjs/operators';
import { createObjectSnapshotChanges } from './snapshot-changes';
import { keepUnstableUntilFirst } from '@angular/fire';
export function createObjectReference(query, afDatabase) {
return {
query,
snapshotChanges() {
return createObjectSnapshotChanges(query, afDatabase.schedulers.outsideAngular)().pipe(keepUnstableUntilFirst);
},
update(data) { return query.ref.update(data); },
set(data) { return query.ref.set(data); },
remove() { return query.ref.remove(); },
valueChanges() {
const snapshotChanges$ = createObjectSnapshotChanges(query, afDatabase.schedulers.outsideAngular)();
return snapshotChanges$.pipe(keepUnstableUntilFirst, map(action => action.payload.exists() ? action.payload.val() : null));
},
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlZmVyZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2Uvb2JqZWN0L2NyZWF0ZS1yZWZlcmVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxNQUFNLFVBQVUscUJBQXFCLENBQVMsS0FBb0IsRUFBRSxVQUErQjtJQUNqRyxPQUFPO1FBQ0wsS0FBSztRQUNMLGVBQWU7WUFDYixPQUFPLDJCQUEyQixDQUFJLEtBQUssRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUN2RixzQkFBc0IsQ0FDdkIsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBZ0IsSUFBSSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQVcsQ0FBa0IsQ0FBQyxDQUFDLENBQUM7UUFDbkYsR0FBRyxDQUFDLElBQU8sSUFBSSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBa0IsQ0FBQyxDQUFDLENBQUM7UUFDN0QsTUFBTSxLQUFLLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQ3hELFlBQVk7WUFDVixNQUFNLGdCQUFnQixHQUFHLDJCQUEyQixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDcEcsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQzFCLHNCQUFzQixFQUN0QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FDMUUsQ0FBQztRQUNKLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlT2JqZWN0LCBEYXRhYmFzZVF1ZXJ5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVPYmplY3RTbmFwc2hvdENoYW5nZXMgfSBmcm9tICcuL3NuYXBzaG90LWNoYW5nZXMnO1xuaW1wb3J0IHsgQW5ndWxhckZpcmVEYXRhYmFzZSB9IGZyb20gJy4uL2RhdGFiYXNlJztcbmltcG9ydCB7IGtlZXBVbnN0YWJsZVVudGlsRmlyc3QgfSBmcm9tICdAYW5ndWxhci9maXJlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU9iamVjdFJlZmVyZW5jZTxUPSBhbnk+KHF1ZXJ5OiBEYXRhYmFzZVF1ZXJ5LCBhZkRhdGFiYXNlOiBBbmd1bGFyRmlyZURhdGFiYXNlKTogQW5ndWxhckZpcmVPYmplY3Q8VD4ge1xuICByZXR1cm4ge1xuICAgIHF1ZXJ5LFxuICAgIHNuYXBzaG90Q2hhbmdlczxUPigpIHtcbiAgICAgIHJldHVybiBjcmVhdGVPYmplY3RTbmFwc2hvdENoYW5nZXM8VD4ocXVlcnksIGFmRGF0YWJhc2Uuc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhcikoKS5waXBlKFxuICAgICAgICBrZWVwVW5zdGFibGVVbnRpbEZpcnN0XG4gICAgICApO1xuICAgIH0sXG4gICAgdXBkYXRlKGRhdGE6IFBhcnRpYWw8VD4pIHsgcmV0dXJuIHF1ZXJ5LnJlZi51cGRhdGUoZGF0YSBhcyBhbnkpIGFzIFByb21pc2U8dm9pZD47IH0sXG4gICAgc2V0KGRhdGE6IFQpIHsgcmV0dXJuIHF1ZXJ5LnJlZi5zZXQoZGF0YSkgYXMgUHJvbWlzZTx2b2lkPjsgfSxcbiAgICByZW1vdmUoKSB7IHJldHVybiBxdWVyeS5yZWYucmVtb3ZlKCkgYXMgUHJvbWlzZTx2b2lkPjsgfSxcbiAgICB2YWx1ZUNoYW5nZXM8VD4oKSB7XG4gICAgICBjb25zdCBzbmFwc2hvdENoYW5nZXMkID0gY3JlYXRlT2JqZWN0U25hcHNob3RDaGFuZ2VzKHF1ZXJ5LCBhZkRhdGFiYXNlLnNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpKCk7XG4gICAgICByZXR1cm4gc25hcHNob3RDaGFuZ2VzJC5waXBlKFxuICAgICAgICBrZWVwVW5zdGFibGVVbnRpbEZpcnN0LFxuICAgICAgICBtYXAoYWN0aW9uID0+IGFjdGlvbi5wYXlsb2FkLmV4aXN0cygpID8gYWN0aW9uLnBheWxvYWQudmFsKCkgYXMgVCA6IG51bGwpXG4gICAgICApO1xuICAgIH0sXG4gIH07XG59XG4iXX0=