0
數據庫中用戶:火力地堡充分利用數據庫視圖
用戶能夠添加後,看起來有點像:
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);
})
}
)
}
(組件)在這裏,我只是assaign所有這些職位的職位陣列打印內部視圖。
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
我曾嘗試使用也異步管道。現在我處於停滯狀態。我應該怎麼做?
在這種情況下,我的網頁崩潰。帖子不顯示,我什麼也做不了,不能點擊。全部被凍結。 (在控制檯中沒有錯誤)。當我閱讀'''這是預期的行爲,因爲每次調用該方法時,都會返回一個新的promise實例,當它解析後觸發更改檢測,這會檢索新的promise,從而觸發更改檢測。 ..''' – elzoy
如果您直接返回從數據庫調用中獲得的可觀察值,該怎麼辦? (看我更新的答案) –
是的,我只是做了同樣的工作。謝謝。 – elzoy