本文整理匯總了TypeScript中app/shared/angular-fire2.AngularFire2DatabaseAdaptor類的典型用法代碼示例。如果您正苦於以下問題:TypeScript AngularFire2DatabaseAdaptor類的具體用法?TypeScript AngularFire2DatabaseAdaptor怎麽用?TypeScript AngularFire2DatabaseAdaptor使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了AngularFire2DatabaseAdaptor類的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: constructor
public constructor(
private readonly db: AngularFire2DatabaseAdaptor,
) {
this.profitabilityStats = db.list(validPathForList(['v2', 'pool', 'latest']))
.publishReplay(1)
.refCount();
this.profitabilityTimeseriesCache = {};
}
示例2: validPathForList
(uid) => {
const path = validPathForList(['v2', 'user', uid, 'bookmarks', 'pools']);
return Observable.fromPromise(
// tslint:disable-next-line:no-any
this.db.insertObject(path, newBookmark as any),
);
},
示例3:
(uid) => this.db.object(validPath(['v2', 'user', uid, 'rig-profile', profileUuid]))
.switchMap(
(profile) => profile != null ?
Observable.of(profile) :
// If the RigProfile isn't found in the users set of profiles, fallback to globally
// defined rig profiles.
this.db.object(validPath(['v2', 'rig-profile', profileUuid])),
),
示例4: Error
([uid, bookmarks]) => {
const index = Object.keys(bookmarks.pools)
.find(key => bookmarks.pools[key] === bookmark);
if (index == null) {
throw new Error('Can\'t find bookmark to remove');
}
const path = validPath(['v2', 'user', uid, 'bookmarks', 'pools', index]);
return Observable.fromPromise(
this.db.removeObject(path),
);
},
示例5: switch
private watchProfitability<
K extends keyof PoolProfitability,
Z extends keyof PoolProfitability[K],
T extends PoolProfitability[K][Z]
>(
p: PoolCurrentWithKey,
granularityKey: K,
convertFn: (multiplier: number) => (data: T) => TimeseriesDataPoint,
limit = 120,
rigProfile: Observable<RigProfile>,
): Observable<PoolAlgoData> {
let limitMinutes = limit;
switch (granularityKey) {
case 'per-day':
limitMinutes = limit * 24 * 60;
break;
case 'per-hour':
limitMinutes = limit * 60;
break;
default:
}
const listKey: ValidPathForList<T> = isCoinPoolCurrent(p) ?
validPathForList([
'v2', 'pool', 'coin', p.pool, p.coin, p.algo, 'profitability', granularityKey,
]) :
validPathForList([
'v2', 'pool', 'algo', p.pool, p.algo, 'profitability', granularityKey,
]);
const listResult = this.db.list(
listKey,
{ limitToLast: limit, orderByPriority: true },
);
return listResult
.combineLatest(
rigProfile.map(profile => convertFn(this.multiplier(p.pool, p.algo, profile))),
)
.map(
([data, convertFnInstance]): PoolAlgoData => {
const timeLimit = (Date.now() - limitMinutes * 60 * 1000);
const mostRecent = data.reduce(
(newest, next) => {
if (newest.timestamp < next.timestamp) {
return next;
}
return newest;
},
data[0],
);
return {
algo: p.algo,
key: p.key,
mostRecent: mostRecent != null ? convertFnInstance(mostRecent) : undefined,
name: `${p.pool} - ${p.algo}`,
pool: p.pool,
series: data
.map(convertFnInstance)
.filter(point => {
if (typeof point.name === 'string') {
return true;
}
return point.name.getTime() > timeLimit;
}),
};
},
);
}
示例6:
(uid) => this.db.object(validPath(['v2', 'user', uid, 'bookmarks'])),
示例7:
.switchMap((uid) => db.object(validPath(['v2', 'user', uid, 'pool-wallet'])))
示例8: validPath
(uid) => {
const path = validPath(['v2', 'user', uid, 'rig-profile', profileUuid]);
return Observable.fromPromise(
this.db.setObject(path, profile),
);
},