无法在angular2和firebase中获取登录用户详细信息?

哈里·哈拉·苏丹

我是angular和firebase的新手,可以说我有以下服务,我正在使用angularfire2数据库

import { Injectable } from '@angular/core';
import { AngularFireDatabase, FirebaseListObservable, 
FirebaseObjectObservable } from 'angularfire2/database';
import { AngularFireAuth } from 'angularfire2/auth';
import { AuthService } from '../../../services/auth.service';

@Injectable()
export class GroupsService {

user: User;

constructor(
 private afAuth: AngularFireAuth,
 private db: AngularFireDatabase,
)  {

this.afAuth.authState.subscribe( ( loggedInUser ) => {
  this.user = {
    email: loggedInUser.email,
    id: loggedInUser.uid
  };

  console.log(this.user) //getting logged in user info correctly
});
}

getGroups():FirebaseListObservable<any[]>{
 console.log(this.user);  //unable to get logged in user
 return this.db.list('groups',{
   query : {
     orderByChild: 'createdBy/email',
     equalTo: this.user.email
   }
  });
}

getGroups()方法上,我基于登录的用户电子邮件地址来获取组,在该功能中,在console.log(this.user);我得到时undefined,请问如何解决此问题?

哈里·哈拉·苏丹

我通过此链接中提供的信息解决了此问题

@Injectable()
export class GroupsService {

/**
* Observable for firebase user
*/
loggedInUser$: Observable<firebase.User>;


/**
* 
* @param authService 
* @param db 
*/
constructor(
private authService: AuthService,
private db: AngularFireDatabase,
) {

 this.loggedInUser$ = authService.user.share();
}

/**
* 
 */
getGroups():FirebaseListObservable<any>{

  return this.loggedInUser$.mergeMap( user => {

  let email = user.email;
  return this.db.list('groups', {
    query: {
      orderByChild: 'createdBy/email',
      equalTo: email
    }
  }) 
  }) as FirebaseListObservable<any[]>
 }
 }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在laravel资源中获取登录用户详细信息

无法在Portlet中获取Liferay登录用户详细信息

获取当前登录用户的详细信息

无法通过Azure图形API获取完整的登录用户AAD详细信息

Laravel - 如何根据员工和登录用户获取公司详细信息

在 Firebase Flutter 中,如何使用自定义类访问登录用户的详细信息

如何从不同的模型中获取登录用户详细信息作为参数

Liferay:如何在Servlet中获取当前的登录用户详细信息?

获取当前用户的详细信息,即登录 firebase 的用户

Firebase-登录用户的详细信息,然后在其他活动中注销用户

cakePHP获取用户已登录用户的详细信息

使用 firebase 和 flutter 登录谷歌后获取用户详细信息

查找默认登录用户的详细信息

如何在OIM请求数据验证中登录用户详细信息?

如何在春季启动应用程序中让Google登录用户的详细信息

在Firebase中获取组用户的详细信息

如何从密钥斗篷获取用户详细信息(不是登录用户,而是任何具有其ID的用户)

无法从Android中的Google+获取登录用户的信息

获取和显示用户的详细信息

Flutter Firebase:我想使用 Stream 提供程序在应用程序中流式传输登录用户的详细信息

在flutter-firebase中无法获取登录用户的状态

成功登录Angular中的所有页面或组件后如何获取用户详细信息(emailid)

使用Angular添加已登录的Firebase用户详细信息,例如displayName,phoneNumber等

如何使用localStorage来存储和获取用户登录详细信息?

在PyroCMS中的post_user_login事件中获取登录的用户详细信息

如何在Firebase中为GitHub(登录)用户的其他详细信息添加范围

登录后需要在TextView中显示用户名和详细信息

在Android Studio中存储用户登录详细信息

Swift 2.0-从Firebase获取用户详细信息