首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用离子交换技术在angularfire2中获取当前用户数据

用离子交换技术在angularfire2中获取当前用户数据
EN

Stack Overflow用户
提问于 2017-02-27 19:54:28
回答 1查看 2.5K关注 0票数 1

我正在搜索如何使用服务来获取用户的数据

users.services.ts

代码语言:javascript
复制
import { AngularFire, AuthProviders, AuthMethods, FirebaseListObservable}     


export class Users {
   uid :string = '8fbEOShqIigfA4u84cyvJcLkv5u1';

    constructor(public af: AngularFire) {}

    getUserObservable(){
        return this.af.database.object('/users/' + this.uid);
    }
}

在这里我的home.ts

代码语言:javascript
复制
import { Users } from '../../services/users.service';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {
  user: any;
  isAuthenticated: boolean = true;

  constructor(private userService: Users) {}

  ngOnInit(){
    this.userService.getUserObservable().subscribe((userObject) => {
      this.user = userObject;
      console.log("result : ", this.user);
    });
  }

}

在控制台我得到:

代码语言:javascript
复制
result :  Object {imgLink: "blabla.jpg", money: 0, score: 0, uid: "8fbEOShqIigfA4u84cyvJcLkv5u1", username: "Luis Willnat"…}

但从离子的角度来看:

代码语言:javascript
复制
Cannot read property 'money' of undefined

我想是因为异步(我练习得不够好),但不知道是什么..

非常感谢你的帮助:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-27 22:20:23

您需要以不同的方式设置代码。通常,当服务包装异步调用--任何异步调用,而不仅仅是Firebase的-时,它的方法应该返回可观测值,而不是由可观测值发出的值。

即使您愿意,也不方便(或可能)尝试返回包装在可观察范围内的值,因为它们只有在可观察到的发射时才可用,而且您无法控制它何时出现。

根据这些准则,您的代码变成:

代码语言:javascript
复制
@Injectable()
export class UserService {
  constructor(public af: AngularFire) {}
  getUser() {
    // Return the observable. DO NOT subscribe here.
    return this.af.auth;
    // Hint: you could also transform the value before returning it:
    // return this.af.auth.map(authData => new User({name: authData.name}));
  }
}

然后,在组件中或在需要的地方,订阅以获得用户:

代码语言:javascript
复制
ngOnInit() {
  this.userService.getUser()
    .subscribe(user => this.user = user);
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42494604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档