2017-05-29 66 views
0

我想从angularFire2 database获取用户详细信息。因此,我正在使用FirebaseObjectObservable,而不是使用FirebaseListObservable,因为我期待的只是一个来自路径的用户。如何从angularFire数据库中获取详细信息并将其设置为模板

这是路径和colums,通过它,我获得的用户数据

path: /projects/users/ 
    columns: userID,username 

    data 
    userID:"001", 
    username:"Icomin" 

而且这个home.ts

import { Component } from '@angular/core'; 
    import { NavController,AlertController,ActionSheetController } from 'ionic-angular'; 
    import{AngularFireDatabase,FirebaseListObservable,FirebaseObjectObservable} from 'angularfire2/database'; 
    import {Observable} from 'rxjs/Observable'; 



@Component({ 
    selector: 'my-child-component', 
    template: `<h1>Welcome {{ (projects | async)}}</h1>` // The template 
}) 
export class HomePage{ 


projects: FirebaseObjectObservable <any>; 

constructor(af:AngularFireDatabase) { 

     this.projects = af.object(`/projects/users`); 
    } 

我执行下面的模板,但是回报Welcome [object object]

模板执行

template: `<h1>Welcome {{ (projects | async)}}</h1>` 

我如何从上述路径的用户的详细信息,并将其设置到模板

+0

查看https://stackoverflow.com/questions/41755579/how-to-get-do-a-join-in-angularfire2-database –

+0

@FrankvanPuffelen我没有参与任何事情,我所要做的就是获得使用对象observables的详细信息 – George

+0

啊,对不起。你的代码正在读取'/ projects/users',这是一个数据列表。所以你的HTML需要循环。或者,让您的代码读取单个用户'/ projects/users/user1'。 –

回答

0

至于你提到,你从变量项目获得Welcome [object object]。这意味着你从这个电话af.object('/projects/users')收到一个列表。
我真的不知道你想通过这个清单到底该怎么做,但你几个选择:
1 - 显示所有用户列表:

template: ' <h1 *ngFor="let proj of projects | async">{{ proj.username }}</h1> 

这将显示所有用户的名字,一个接一个。
2 - 显示特定用户:
(你需要选择过滤条件:用户ID或用户名)

export class HomePage{ 
    project: FirebaseObjectObservable <any>; 
    constructor(af:AngularFireDatabase) { 
    this.project = af.list(`/projects/users`,{ 
     query: { 
      orderByChild: 'userID',  //or orderByChild: 'username', 
      equalTo: <someUserID>  // equalTo: <someUsername> 
     } 
    }); 
    } 
} 

,然后模板来显示当前用户名:
template: <h1>{{ project.username }}</h1>

希望它适合你想要什么。

相关问题