使用Angular2和Firebase登录时路由到数据填充页面

亚伯拉罕linkedin

现在,我有一个Angular 2项目,该项目采用用户的登录凭据,并将用户重新路由到我的个人资料组件。

home.component.ts

constructor(public router: Router){}
  signInSubmit(){
    var self = this;
    firebase.auth().signInWithEmailAndPassword(self.signInForm.value.smail, self.signInForm.value.spassword).catch(function(error){
    console.log(error.message);
    });
    self.router.navigate(['profile']);
  }

其中profile代表具有用户Firebase数据(例如其用户名)的页面。我的问题是,在用户重定向时,用户数据没有被填充。他们必须刷新页面才能看到它。

我的profile.component.ts

export class ProfileComponent implements OnInit {
private addsnotes$: FirebaseListObservable<string[]>;
private username$: FirebaseObjectObservable<string>;
addForm: FormGroup;

constructor(private af: AngularFire){}

ngOnInit(){
   let user = firebase.auth().currentUser;
   let userNamePath = `users/${user.uid}/username`;
   let notesPath = `users/${user.uid}/addnote`;

   this.username$ = this.af.database.object(userNamePath);
   this.addsnotes$ = this.af.database.list(notesPath);
} 
}

我的profile.component.html

<h4>Welcome {{ (username$ | async)?.$value }}</h4>

当我被重定向到我的个人资料路由时,会被告知user为空。但是同样,如果我只是刷新页面,这不是问题。如何在重新路由上检索和输出用户的数据?我也愿意考虑页面刷新选项,尽管不确定如何在Angular 2中刷新到单独的路由。

卡列布

问题在于,尝试使用凭据登录后,您将立即重定向。您需要先等待登录成功,然后才能重新路由。

signInWithEmailAndPassword无极基于呼叫也返回成功调用后的用户信息。因此,您可以执行以下操作:

firebase.auth().signInWithEmailAndPassword(
  self.signInForm.value.smail,
  self.signInForm.value.spassword
)
  .then((userInfo) => {
    // Login was successful, NOW redirect
    self.router.navigate([ 'profile' ]);
  })
  .catch((error) => {
    // Do something, such as report the error on your sign in page
  });

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular2 Hashtag路由到Anchor不会移动页面

来自分类Dev

使用 Angular2 将数据传递到路由组件中

来自分类Dev

如果用户未登录Angular2 2.0.0-rc.4,则重定向到登录路由

来自分类Dev

Angular 2登录时导航到其他页面

来自分类Dev

Classdiagram Angular2,在注入和使用路由时的关联或依赖性

来自分类Dev

使用类装饰器时需要Angular2反射元数据填充

来自分类Dev

Angular2路由器,内容更改,如何避免路由和重建页面

来自分类Dev

刷新路由是使用 angular2 路由器定向到默认路由

来自分类Dev

加载和页面过渡时的Angular2动画

来自分类Dev

将问题路由到子路由Angular2和Express,以尝试提供子目录

来自分类Dev

路由参数无效时,Angular 2路由到404页面

来自分类Dev

使用Angular2,angularfire2和Typescript从Firebase对象中获取数据

来自分类Dev

Angular2根据搜索结果路由到页面

来自分类Dev

始终路由到登录页面

来自分类Dev

Auth0和Angular 2:使用登录小部件登录和路由失败

来自分类Dev

刷新页面时,angular2 rc1默认路由问题

来自分类Dev

路由angular2时的可选参数

来自分类Dev

路由angular2时的可选参数

来自分类Dev

Angular2:我希望登录页面和主页具有不同的html结构

来自分类Dev

使用Angle 2 Google和Firebase登录时出现错误

来自分类Dev

Angular2路由-将数据从父组件传递到子子组件

来自分类Dev

Angular2-路由到新页面时,并非所有子组件都被破坏

来自分类Dev

ionic2 + angular2单击时导航到全局页面

来自分类Dev

在angular2中使用锚标记的相同页面路由

来自分类Dev

angular2流星路由-多个路由时出错

来自分类Dev

如何防止 Angular2 使用路由“/”

来自分类Dev

notFound页面的angular2路由

来自分类Dev

将数据从ASP Web表单页面传递到Angular2应用

来自分类Dev

Angular2 rc1,新路由器和传递数据

Related 相关文章

  1. 1

    Angular2 Hashtag路由到Anchor不会移动页面

  2. 2

    使用 Angular2 将数据传递到路由组件中

  3. 3

    如果用户未登录Angular2 2.0.0-rc.4,则重定向到登录路由

  4. 4

    Angular 2登录时导航到其他页面

  5. 5

    Classdiagram Angular2,在注入和使用路由时的关联或依赖性

  6. 6

    使用类装饰器时需要Angular2反射元数据填充

  7. 7

    Angular2路由器,内容更改,如何避免路由和重建页面

  8. 8

    刷新路由是使用 angular2 路由器定向到默认路由

  9. 9

    加载和页面过渡时的Angular2动画

  10. 10

    将问题路由到子路由Angular2和Express,以尝试提供子目录

  11. 11

    路由参数无效时,Angular 2路由到404页面

  12. 12

    使用Angular2,angularfire2和Typescript从Firebase对象中获取数据

  13. 13

    Angular2根据搜索结果路由到页面

  14. 14

    始终路由到登录页面

  15. 15

    Auth0和Angular 2:使用登录小部件登录和路由失败

  16. 16

    刷新页面时,angular2 rc1默认路由问题

  17. 17

    路由angular2时的可选参数

  18. 18

    路由angular2时的可选参数

  19. 19

    Angular2:我希望登录页面和主页具有不同的html结构

  20. 20

    使用Angle 2 Google和Firebase登录时出现错误

  21. 21

    Angular2路由-将数据从父组件传递到子子组件

  22. 22

    Angular2-路由到新页面时,并非所有子组件都被破坏

  23. 23

    ionic2 + angular2单击时导航到全局页面

  24. 24

    在angular2中使用锚标记的相同页面路由

  25. 25

    angular2流星路由-多个路由时出错

  26. 26

    如何防止 Angular2 使用路由“/”

  27. 27

    notFound页面的angular2路由

  28. 28

    将数据从ASP Web表单页面传递到Angular2应用

  29. 29

    Angular2 rc1,新路由器和传递数据

热门标签

归档