| 
1 |  | -import { ApplicationRef, Component, NgZone, Optional } from '@angular/core';  | 
 | 1 | +import { ApplicationRef, Component, NgZone } from '@angular/core';  | 
2 | 2 | import { FirebaseApp, FirebaseApps } from '@angular/fire/app';  | 
3 | 3 | import { Auth, AuthInstances, authState } from '@angular/fire/auth';  | 
4 |  | -import { Firestore, FirestoreInstances } from '@angular/fire/firestore';  | 
5 |  | -import { firestoreInstance$ } from '@angular/fire/firestore';  | 
6 |  | -import { debounceTime } from 'rxjs/operators';  | 
7 |  | -import { initializeFirestore$ } from './firestore';  | 
 | 4 | +import { Firestore, FirestoreInstances, getDoc, doc, DocumentSnapshot } from '@angular/fire/firestore/lite';  | 
 | 5 | +import { DocumentData } from 'rxfire/firestore/lite/interfaces';  | 
 | 6 | +import { debounceTime, distinctUntilChanged } from 'rxjs/operators';  | 
8 | 7 | 
 
  | 
9 | 8 | @Component({  | 
10 | 9 |   selector: 'app-root',  | 
11 | 10 |   template: `  | 
12 |  | -    <!--The content below is only a placeholder and can be replaced.-->  | 
13 |  | -    <div style="text-align:center" class="content">  | 
14 |  | -      <h1>  | 
15 |  | -        Welcome to {{title}}!  | 
16 |  | -      </h1>  | 
17 |  | -      <span style="display: block">{{ app.name }} app is running!</span>  | 
18 |  | -      <img width="300" alt="Angular Logo" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==">  | 
19 |  | -    </div>  | 
20 |  | -    <h2>Here are some links to help you start: </h2>  | 
21 |  | -    <ul>  | 
22 |  | -      <li>  | 
23 |  | -        <h2><a target="_blank" rel="noopener" href="https://angular.io/tutorial">Tour of Heroes</a></h2>  | 
24 |  | -      </li>  | 
25 |  | -      <li>  | 
26 |  | -        <h2><a target="_blank" rel="noopener" href="https://angular.io/cli">CLI Documentation</a></h2>  | 
27 |  | -      </li>  | 
28 |  | -      <li>  | 
29 |  | -        <h2><a target="_blank" rel="noopener" href="https://blog.angular.io/">Angular blog</a></h2>  | 
30 |  | -      </li>  | 
31 |  | -    </ul>  | 
 | 11 | +    <pre>{{ (myDocData | async)?.data() | json }}</pre>  | 
32 | 12 |     <router-outlet></router-outlet>  | 
33 | 13 |   `,  | 
34 | 14 |   styles: []  | 
35 | 15 | })  | 
36 | 16 | export class AppComponent {  | 
 | 17 | +  myDocData: Promise<DocumentSnapshot<DocumentData>>;  | 
37 | 18 |   title = 'sample';  | 
38 | 19 |   constructor(  | 
39 | 20 |     public app: FirebaseApp, // default Firebase App  | 
40 | 21 |     public auth: Auth, // default Firbase Auth  | 
41 | 22 |     public apps: FirebaseApps, // all initialized App instances  | 
42 | 23 |     public authInstances: AuthInstances, // all initialized Auth instances  | 
43 |  | -    @Optional() public firestore: Firestore,  | 
44 |  | -    @Optional() public firestoreInstances: FirestoreInstances,  | 
 | 24 | +    public firestore: Firestore,  | 
 | 25 | +    public firestoreInstances: FirestoreInstances,  | 
45 | 26 |     appRef: ApplicationRef,  | 
46 | 27 |     zone: NgZone,  | 
47 | 28 |   ) {  | 
48 | 29 |     console.log({app, auth, apps, authInstances, firestore, firestoreInstances });  | 
49 |  | -    // onAuthStateChanged should destablize the zone  | 
50 |  | -    // onAuthStateChanged(auth, it => console.log('onAuthStateChanged', it));  | 
51 | 30 |     authState(auth).subscribe(it => console.log('authState', it));  | 
52 |  | -    appRef.isStable.pipe(debounceTime(200)).subscribe(it => console.log('isStable', it));  | 
53 |  | -    firestoreInstance$.subscribe(it => console.log('$', it));  | 
54 |  | -    initializeFirestore$.subscribe(it => console.log('init', it));  | 
 | 31 | +    appRef.isStable.pipe(distinctUntilChanged()).subscribe(it => console.log('isStable', it));  | 
 | 32 | +    this.myDocData = getDoc(doc(firestore, 'animals/NJdGQCv1P92SWsp4nSE7'));  | 
 | 33 | +    // firestoreInstance$.subscribe(it => console.log('$', it));  | 
 | 34 | +    // initializeFirestore$.subscribe(it => console.log('init', it));  | 
55 | 35 |   }  | 
56 | 36 | }  | 
0 commit comments