首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Emberfire和Torii的Firebase 3身份验证

使用Emberfire和Torii的Firebase 3身份验证
EN

Stack Overflow用户
提问于 2017-03-07 04:07:16
回答 2查看 817关注 0票数 2

我正在尝试使用Firebase的电子邮件/密码提供程序进行身份验证,但始终收到以下错误:

未定义的TypeError:无法读取未定义的属性“打开”

下面是我的应用程序的样子:

app/torii-适配器/applications.js s.js

代码语言:javascript
复制
import Ember from 'ember';
import ToriiFirebaseAdapter from 'emberfire/torii-adapters/firebase';

export default ToriiFirebaseAdapter.extend({
     firebase: Ember.inject.service()
});

app/适配器/application.js

代码语言:javascript
复制
import Ember from 'ember';
import FirebaseAdapter from 'emberfire/adapters/firebase';

const { inject } = Ember;

export default FirebaseAdapter.extend({
  firebase: inject.service()
});

app/模板/组件/登录-cmp.hbs

代码语言:javascript
复制
 ...   
                  <form class="col s12">
                      <div class="row">
                        <div class="input-field col s12">
                          {{input
                            id="userEmail"
                            type="email"
                            value=email
                            class="validate"
                          }}
                          <label for="email">Email</label>
                        </div>
                      </div>
                      <div class="row">
                        <div class="input-field col s12">
                          {{input
                            id="userPassword"
                            type="password"
                            value=password
                            class="validate"
                          }}
                          <label for="password">Password</label>
                        </div>
                      </div>
                      <div class="row">
                        <div class="col s12 m4">
                          <button class="btn waves-effect waves-light btn-large mt-20 mb-10" type="submit" {{action 'signIn' email password}}>Sign in
                            <i class="material-icons right">send</i>
                          </button>
                        </div>                    
                      </div>
                    </form>

app/components/login-cmp.js

代码语言:javascript
复制
signIn: function(email, password) {
      this.get('session').open('firebase', { provider: 'password', email: email, password: password}).then(function(data) {
        console.log(data.currentUser);
      });
    }, 

使用与我的firebase项目、域和键在https://github.com/firebase/emberfire上显示的配置/environment.js. my设置。也有

代码语言:javascript
复制
torii: {
      sessionServiceName: 'session'
    },

我还在我的防火墙帐户上启用了电子邮件/密码提供程序。

不确定断开的位置。任何帮助都是非常感谢的。谢谢!

* Ember-CLI v2.11 * Emberfire v2.0.6 * Torii诉0.8.1* Node v6.9.5

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-08 06:23:55

signIn动作按钮不会告诉你的应用程序你使用的是什么提供者,只提供了登录凭证,应该是这样的:

代码语言:javascript
复制
{{action 'signIn' "password" email password}}

最后,您的signIn操作代码应该如下所示:

代码语言:javascript
复制
signIn() {
  let controller = this;
  this.get('session').open('firebase', { provider: 'password', email: this.get('email') || '', password: this.get('password') || ''}).then(function(data) {
    console.log(data.currentUser);
  });
}, 
票数 3
EN

Stack Overflow用户

发布于 2017-05-06 00:21:36

对于任何其他获得此错误的人,此时Ember版本2.13.1与Emberfire和torii有一个错误:内部"torii“实例是undefined,因为获得所有者或工厂的机制在Ember2.13中略有更改,因此不能调用"open”。到目前为止,的最新工作版本是2.12.0

更多信息:https://github.com/firebase/emberfire/issues/503

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42640039

复制
相关文章

相似问题

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