javascript - EmberFire登录成功后如何进入新页面?

标签 javascript ember.js firebase firebase-authentication emberfire

使用 Firebase 和 EmberFire 成功登录后,我尝试进入新页面。

下面是我的登录页面的controller.js

import Ember from 'ember';

export default Ember.Controller.extend({
  actions: {
    signIn(provider) {
      let controller = this;
      this.get('session').open('firebase', {
        provider: provider,
        email: this.get('email') || '',
        password: this.get('password') || '',
      }).then(() => {
        controller.set('email', null);
        controller.set('password', null);
      }, (error) => {
        console.log(error);
      });
    }
  }
});

下面是我的登录页面的route.js

import Ember from 'ember';

export default Ember.Route.extend({
  login: function() {
  let controller = this.get('controller');
  let email = controller.get('userEmail');
  let password = controller.get('userPassword');
  this.get('session').open('firebase', {
    provider: 'password',
    email: email,
    password: password
  }).then(function() {
    this.transitionTo('protected');
  }.bind(this));
}
});

下面是我的 template.hbs

{{outlet}}

<form class="login">
  <h3>Log in to BettorHalf</h3>
  {{input
      type='text'
      class='form-control'
      value=email
      placeholder="Email address"
  }}
  {{input
    type='password'
    class='form-control'
    value=password
    placeholder='password'
}}
<button 
  class="signinbtn" 
  {{action 'signIn' 'password'}}
>
  {{ 'sign-in'}} Sign In
</button>
</form>

我正在尝试使用 Firebase 身份验证登录某人,然后转到一个新页面,该页面将通过查询附加到用户的相关数据来填充该人的信息。

感谢您提供的帮助,我是编码新手,对 Ember 和 Firebase 也很陌生。

最佳答案

当使用“密码”作为您的提供程序时,登录页面 controller.js 文件应处理该操作,例如

import Ember from 'ember';

export default Ember.Controller.extend({
actions: {
    signIn() {
        let controller = this;
        this.get('session').open('firebase', {
            provider: 'password',
            email: this.get('email') || '',
            password: this.get('password') || '',
        }).then(() => {
            controller.set('email', null);
            controller.set('password', null);
            this.transitionToRoute('profile');
        }, (error) => {
            console.log(error);
        });
    }
}
});

在 Controller 中,您可以使用 this.transitionToRoute() 转到所需的页面。

关于javascript - EmberFire登录成功后如何进入新页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41352700/

相关文章:

javascript - 在 Javascript 和 php 中使用相同的随机数

javascript - 在使用 pod 的 Ember.js 应用程序中,在哪里放置嵌套路由的模板?

java - FCM 与云数据存储

android - Ionic 3 上的 OneSignal 推送通知 : All included players are not subscribed

ember.js - 我可以使用 'ember generate' 为现有 'objects' 生成测试吗?

ios - 使用 React Native 构建 IOS : ld: framework not found FIRAnalyticsConnector

javascript - bootstrap-select 获取值和文本

javascript - 使用JavaScript图表库处理海量数据

javascript - 从对象数组中删除某些对象

javascript - Ember - 如何清理 JSON 响应