データベース: Firebase
ユーザーは、次のような投稿を追加できます。
postKey
content: 'Content of the post',
date: 'Date of post',
author: 'authorKey' (author key is a login)
author
ユーザーはいつか自分のプロファイルで何かを変更するので、すべてのユーザー情報を内部に保存するべきではないと思います。ユーザーキーだけを内部に保存しauthor
、ビュー内の投稿データを印刷しながらそのユーザーを取得したいと思います。
(サービス)それが私がすべての投稿を取得している方法です(正しく動作します)
getPosts(): Promise<any> {
return new Promise(
(resolve) => {
this.af.database.list('/posts')
.subscribe(response => {
if(response.length > 0) resolve(response);
})
}
)
}
(コンポーネント)ここでは、これらすべての投稿を投稿配列に割り当てて、ビュー内に印刷します。
posts: any;
constructor(private homepageService: HomepageService) {
homepageService.getPosts().then(
response => {
this.posts = response.reverse();
});
}
(表示)非常に簡単に印刷できるすべての投稿データを除いて、post.author でユーザーに写真、名、姓などの著者データを印刷させたいと思います。
<div *ngFor="let post of posts" class="post-body">
{{post.content}}
{{homepageService.getUser(post.author)?.email}}
</div>
このようにして、ユーザーを取得したいと思います。ここにgetUser関数があります
getUser(key): Promise<any> {
return new Promise(
(resolve) => {
this.af.database.object('/users/' + key)
.subscribe(response => {
resolve(response);
})
}
);
}
{{homepageService.getUser(post.author)?.email}}
内部ビューがないという行が間違っていることは知っていthen
ますが、非同期パイプも使用してみました。今、私は立ち往生しています。どうすればいいですか?