从数据库内部视图获取用户
Getting a user from database inside view
数据库:Firebase
用户可以添加一个 post,看起来有点像:
postKey
content: 'Content of the post',
date: 'Date of post',
author: 'authorKey' (author key is a login)
我认为我不应该将所有用户信息都存储在 author
中,因为用户总有一天会更改其个人资料中的某些内容。我只将用户密钥存储在 author
中,我想在视图中打印 post 数据时获取该用户。
(服务)
这就是我获得所有 post 的方式(工作正常)
getPosts(): Promise<any> {
return new Promise(
(resolve) => {
this.af.database.list('/posts')
.subscribe(response => {
if(response.length > 0) resolve(response);
})
}
)
}
(component) 在这里,我只是将所有这些 posts 分配给 posts 数组以在视图中打印它。
posts: any;
constructor(private homepageService: HomepageService) {
homepageService.getPosts().then(
response => {
this.posts = response.reverse();
});
}
(view) 除了我可以很容易打印的所有 post 数据外,我想通过 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
内部视图,但我也尝试过使用异步管道。现在我停滞不前了。我应该怎么做?
{{(homepageService.getUser(post.author) | async)?.email}}
或
{{(homepageService.getUser(post.author) | async).email}}
和
getUser(key): Observable<any> {
return this.af.database.object('/users/' + key);
}
数据库:Firebase
用户可以添加一个 post,看起来有点像:
postKey
content: 'Content of the post',
date: 'Date of post',
author: 'authorKey' (author key is a login)
我认为我不应该将所有用户信息都存储在 author
中,因为用户总有一天会更改其个人资料中的某些内容。我只将用户密钥存储在 author
中,我想在视图中打印 post 数据时获取该用户。
(服务) 这就是我获得所有 post 的方式(工作正常)
getPosts(): Promise<any> {
return new Promise(
(resolve) => {
this.af.database.list('/posts')
.subscribe(response => {
if(response.length > 0) resolve(response);
})
}
)
}
(component) 在这里,我只是将所有这些 posts 分配给 posts 数组以在视图中打印它。
posts: any;
constructor(private homepageService: HomepageService) {
homepageService.getPosts().then(
response => {
this.posts = response.reverse();
});
}
(view) 除了我可以很容易打印的所有 post 数据外,我想通过 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
内部视图,但我也尝试过使用异步管道。现在我停滞不前了。我应该怎么做?
{{(homepageService.getUser(post.author) | async)?.email}}
或
{{(homepageService.getUser(post.author) | async).email}}
和
getUser(key): Observable<any> {
return this.af.database.object('/users/' + key);
}