本文整理匯總了TypeScript中@firebase/app-types.FirebaseApp類的典型用法代碼示例。如果您正苦於以下問題:TypeScript FirebaseApp類的具體用法?TypeScript FirebaseApp怎麽用?TypeScript FirebaseApp使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了FirebaseApp類的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: inject
inject([FirebaseApp, AngularFireDatabase], (_app: FBApp, _db: AngularFireDatabase) => {
app = _app;
db = _db;
ref = app.database().ref();
O = new FirebaseObjectObservable((observer: Observer<any>) => {
}, ref);
})();
示例2: describe
describe('AngularFirestoreDocument', () => {
let app: FBApp;
let afs: AngularFirestore;
let sub: Subscription;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
AngularFireModule.initializeApp(COMMON_CONFIG),
AngularFirestoreModule.enablePersistence()
]
});
inject([FirebaseApp, AngularFirestore], (_app: FBApp, _afs: AngularFirestore) => {
app = _app;
afs = _afs;
})();
});
afterEach(async (done) => {
await app.delete();
done();
});
it('should get action updates', async (done: any) => {
const randomCollectionName = randomName(afs.firestore);
const ref = afs.firestore.doc(`${randomCollectionName}/FAKE`);
const stock = new AngularFirestoreDocument<Stock>(ref, afs);
await stock.set(FAKE_STOCK_DATA);
const sub = stock
.snapshotChanges()
.subscribe(async a => {
sub.unsubscribe();
if (a.payload.exists) {
expect(a.payload.data()).toEqual(FAKE_STOCK_DATA);
stock.delete().then(done).catch(done.fail);
}
});
});
it('should get unwrapped snapshot', async (done: any) => {
const randomCollectionName = afs.firestore.collection('a').doc().id;
const ref = afs.firestore.doc(`${randomCollectionName}/FAKE`);
const stock = new AngularFirestoreDocument<Stock>(ref, afs);
await stock.set(FAKE_STOCK_DATA);
const obs$ = stock.valueChanges();
obs$.take(1).subscribe(async (data: Stock) => {
expect(JSON.stringify(data)).toBe(JSON.stringify(FAKE_STOCK_DATA));
stock.delete().then(done).catch(done.fail);
});
});
});
示例3: describe
describe('AngularFirestoreCollection', () => {
let app: FBApp;
let afs: AngularFirestore;
let sub: Subscription;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
AngularFireModule.initializeApp(COMMON_CONFIG),
AngularFirestoreModule.enablePersistence()
]
});
inject([FirebaseApp, AngularFirestore], (_app: FBApp, _afs: AngularFirestore) => {
app = _app;
afs = _afs;
})();
});
afterEach(async (done) => {
await app.delete();
done();
});
describe('valueChanges()', () => {
it('should get unwrapped snapshot', async (done: any) => {
const ITEMS = 4;
const { randomCollectionName, ref, stocks, names } = await collectionHarness(afs, ITEMS);
const sub = stocks.valueChanges().subscribe(data => {
// unsub immediately as we will be deleting data at the bottom
// and that will trigger another subscribe callback and fail
// the test
sub.unsubscribe();
// We added four things. This should be four.
// This could not be four if the batch failed or
// if the collection state is altered during a test run
expect(data.length).toEqual(ITEMS);
data.forEach(stock => {
// We used the same piece of data so they should all equal
expect(stock).toEqual(FAKE_STOCK_DATA);
});
// Delete them all
const promises = names.map(name => ref.doc(name).delete());
Promise.all(promises).then(done).catch(fail);
});
});
it('should handle multiple subscriptions (hot)', async (done: any) => {
const ITEMS = 4;
const { randomCollectionName, ref, stocks, names } = await collectionHarness(afs, ITEMS);
const changes = stocks.valueChanges();
const sub = changes.subscribe(() => {}).add(
changes.take(1).subscribe(data => {
expect(data.length).toEqual(ITEMS);
sub.unsubscribe();
})
).add(() => {
deleteThemAll(names, ref).then(done).catch(done.fail);
});
});
it('should handle multiple subscriptions (warm)', async (done: any) => {
const ITEMS = 4;
const { randomCollectionName, ref, stocks, names } = await collectionHarness(afs, ITEMS);
const changes = stocks.valueChanges();
changes.take(1).subscribe(() => {}).add(() => {
const sub = changes.take(1).subscribe(data => {
expect(data.length).toEqual(ITEMS);
}).add(() => {
deleteThemAll(names, ref).then(done).catch(done.fail);
});
});
});
it('should handle dynamic queries that return empty sets', async (done) => {
const ITEMS = 10;
let count = 0;
let firstIndex = 0;
let pricefilter$ = new BehaviorSubject<number|null>(null);
const randomCollectionName = randomName(afs.firestore);
const ref = afs.firestore.collection(`${randomCollectionName}`);
let names = await createRandomStocks(afs.firestore, ref, ITEMS);
const sub = pricefilter$.switchMap(price => {
return afs.collection(randomCollectionName, ref => price ? ref.where('price', '==', price) : ref).valueChanges()
}).subscribe(data => {
count = count + 1;
// the first time should all be 'added'
if(count === 1) {
expect(data.length).toEqual(ITEMS);
pricefilter$.next(-1);
}
// on the second round, we should have filtered out everything
if(count === 2) {
expect(data.length).toEqual(0);
sub.unsubscribe();
deleteThemAll(names, ref).then(done).catch(done.fail);
}
});
//.........這裏部分代碼省略.........
示例4: describe
describe('FirebaseObjectObservable', () => {
let O: FirebaseObjectObservable<any>;
let ref: Reference;
let app: FBApp;
let db: AngularFireDatabase;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
AngularFireModule.initializeApp(COMMON_CONFIG),
AngularFireDatabaseModule
]
});
inject([FirebaseApp, AngularFireDatabase], (_app: FBApp, _db: AngularFireDatabase) => {
app = _app;
db = _db;
ref = app.database().ref();
O = new FirebaseObjectObservable((observer: Observer<any>) => {
}, ref);
})();
});
afterEach(done => {
ref.off();
ref.remove();
app.delete().then(done, done.fail);
});
it('should return an instance of FirebaseObservable when calling operators', () => {
let O = new FirebaseObjectObservable((observer: Observer<any>) => { });
expect(map.call(O, noop) instanceof FirebaseObjectObservable).toBe(true);
});
describe('$ref', () => {
it('should match the database path passed in the constructor', () => {
expect(O.$ref!.toString()).toEqual(ref.toString());
});
});
describe('set', () => {
it('should call set on the underlying ref', (done: any) => {
let setSpy = spyOn(ref, 'set');
O.subscribe();
O.set(1);
expect(setSpy).toHaveBeenCalledWith(1);
done();
});
it('should throw an exception if set when not subscribed', () => {
O = new FirebaseObjectObservable((observer: Observer<any>) => { });
expect(() => {
O.set('foo');
}).toThrowError('No ref specified for this Observable!')
});
it('should accept any type of value without compilation error', () => {
O.set('foo');
});
it('should resolve returned thenable when successful', (done: any) => {
O.set('foo').then(done, done.fail);
});
});
describe('update', () => {
const updateObject = { hot: 'firebae' };
it('should call update on the underlying ref', () => {
let updateSpy = spyOn(ref, 'update');
O.subscribe();
O.update(updateObject);
expect(updateSpy).toHaveBeenCalledWith(updateObject);
});
it('should throw an exception if updated when not subscribed', () => {
O = new FirebaseObjectObservable((observer: Observer<any>) => { });
expect(() => {
O.update(updateObject);
}).toThrowError('No ref specified for this Observable!')
});
it('should accept any type of value without compilation error', () => {
O.update(updateObject);
});
it('should resolve returned thenable when successful', (done: any) => {
O.update(updateObject).then(done, done.fail);
});
});
describe('remove', () => {
//.........這裏部分代碼省略.........
示例5: afterEach
afterEach(async (done) => {
await app.delete();
done();
});
示例6: afterEach
afterEach(done => {
ref.off();
ref.remove();
app.delete().then(done, done.fail);
});