Я создал Angular 6 с приложением Ionic 4, и у меня возникли небольшие проблемы с возвратом определенных данных из базы данных Google Cloud Firestore.Я создал «карты», которые отображают несколько характеристик, которые я получаю из Firestore. Вот пример того, как устроены мои карты.Я хочу, чтобы вместо того, чтобы вводить названия карточек вручную, я хочу взять их все из базы данных и отобразить на каждой карточке на основе идентификатора документа.Например, допустим, у меня есть идентификаторы документов от 1 до 10 с информацией в них, такой как «имя, название, песня».Теперь для каждого заголовка я хочу получить его из базы данных, например,
<div *ngFor="let note of cards | async">
<h1>{{note.title}}</h1>
</div>
, но вместо note.title
я хочу сделать что-то вроде note.title[1]
, где 1 - мой первый идентификатор документа и т. Д. И т. Д.Вот мой код.
HTML
<ion-header>
<ion-toolbar>
<ion-buttons slot="start">
<ion-menu-button></ion-menu-button>
</ion-buttons>
<ion-title>Ionic Blank</ion-title>
</ion-toolbar>
</ion-header>
<ion-content padding>
<ion-card>
<img src="../../../assets/images/pavilion.jpg" />
<ion-card-content>
<ion-card-title>
<div *ngFor="let note of cards | async">
<h1>{{note.title}}</h1>
</div>
</ion-card-title>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat.
</p>
</ion-card-content>
<ion-row no-padding>
<ion-col>
<button ion-button clear small icon-start class="dangerColor">
<ion-icon name='star'></ion-icon>
Favorite
</button>
</ion-col>
<ion-col text-center>
<button ion-button clear small icon-start class="dangerColor">
<ion-icon name='share-alt'></ion-icon>
Share
</button>
</ion-col>
<ion-col text-right>
<button ion-button clear small icon-start class="dangerColor" routerLink="/maps">
<ion-icon name='arrow-dropright'></ion-icon>
More
</button>
</ion-col>
</ion-row>
</ion-card>
<!--Second Card-->
<ion-card>
<img src="../../../assets/images/statehouse2011.jpg" />
<ion-card-content>
<ion-card-title>
<div *ngFor="let note of cards | async">
<h1>{{note.title}}</h1>
</div>
</ion-card-title>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat.
</p>
</ion-card-content>
<ion-row no-padding>
<ion-col>
<button ion-button clear small icon-start class="dangerColor">
<ion-icon name='star'></ion-icon>
Favorite
</button>
</ion-col>
<ion-col text-center>
<button ion-button clear small icon-start class="dangerColor">
<ion-icon name='share-alt'></ion-icon>
Share
</button>
</ion-col>
<ion-col text-right>
<button ion-button clear small icon-start class="dangerColor">
<ion-icon name='arrow-dropright'></ion-icon>
More
</button>
</ion-col>
</ion-row>
</ion-card>
</ion-content>
<router-outlet></router-outlet>
home.page.ts
import { Component } from '@angular/core';
import { AngularFirestore, AngularFirestoreCollection, AngularFirestoreDocument } from 'angularfire2/firestore';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
interface Note {
title: string;
description: string;
id: string;
}
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
cardsCollection: AngularFirestoreCollection<Note>;
cards: Observable<Note[]>;
constructor(
private afs: AngularFirestore
) {
this.cardsCollection = this.afs.collection('cards')
this.cards = this.cardsCollection.valueChanges()
}
}