Я новичок в Angular и angularfire2 и могу использовать некоторую помощь с примерами Установка и настройка , предоставленными на GitHub .
Я выполнил все инструкции до конца, но # 8. Привязать коллекцию Firestore к списку не работает для меня, как описано, список не возвращается из app.component.html
. Когда я добавляю директиву *ngFor
вместе с конвейером async
в шаблон, как показано в документации, и запускаю приложение. Это просто все пусто, выводится только {{title}}
. Я не получаю ошибок в консоли.
Но если я console.log(this.items);
возвращает Observable
И, как я понимаю, это ожидается, поскольку вам нужно subscribe
или async
трубу на Observable
.
Observable
operator: MapOperator {project: ƒ, thisArg: undefined}
source: Observable {_isScalar: false, _subscribe: ƒ}
_isScalar: false
__proto__: Object
Почему этот простой пример из документов не работает для меня? Почему я не вижу два документа, которые я храню в коллекции в Firestore?
Приложение / app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { AngularFireModule } from 'angularfire2';
import { AngularFirestoreModule } from 'angularfire2/firestore';
import { AngularFireStorageModule } from 'angularfire2/storage';
import { AngularFireAuthModule } from 'angularfire2/auth';
import { environment } from '../environments/environment';
@NgModule({
imports: [
BrowserModule,
AngularFireModule.initializeApp(environment.firebase),
AngularFirestoreModule,
AngularFireAuthModule,
AngularFireStorageModule
],
declarations: [AppComponent],
bootstrap: [AppComponent]
})
export class AppModule {}
Приложение / app.component.ts
import { Component } from '@angular/core';
import { AngularFirestore } from 'angularfire2/firestore';
import { Observable } from 'rxjs';
@Component({
selector: 'app-root',
templateUrl: 'app.component.html',
styleUrls: ['app.component.css']
})
export class AppComponent {
title = 'Animal list';
items: Observable<any[]>;
constructor(db: AngularFirestore) {
this.items = db.collection('items').valueChanges();
console.log(this.items);
}
}
Приложение / app.component.html
<h1>{{title}}</h1>
<ul>
<li class="text" *ngFor="let item of items | async">
{{item.name}}
</li>
</ul>
SRC / сред / environments.ts
export const environment = {
production: false,
firebase: {
apiKey: '...',
authDomain: '...',
databaseURL: '...',
projectId: '...',
storageBucket: '...',
messagingSenderId: '...'
}
};