我正在尝试使用Firebase的电子邮件/密码提供程序进行身份验证,但始终收到以下错误:
未定义的TypeError:无法读取未定义的属性“打开”
下面是我的应用程序的样子:
app/torii-适配器/applications.js s.js
import Ember from 'ember';
import ToriiFirebaseAdapter from 'emberfire/torii-adapters/firebase';
export default ToriiFirebaseAdapter.extend({
firebase: Ember.inject.service()
});app/适配器/application.js
import Ember from 'ember';
import FirebaseAdapter from 'emberfire/adapters/firebase';
const { inject } = Ember;
export default FirebaseAdapter.extend({
firebase: inject.service()
});app/模板/组件/登录-cmp.hbs
...
<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
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设置。也有
torii: {
sessionServiceName: 'session'
},我还在我的防火墙帐户上启用了电子邮件/密码提供程序。
不确定断开的位置。任何帮助都是非常感谢的。谢谢!
* Ember-CLI v2.11 * Emberfire v2.0.6 * Torii诉0.8.1* Node v6.9.5
发布于 2017-03-08 06:23:55
signIn动作按钮不会告诉你的应用程序你使用的是什么提供者,只提供了登录凭证,应该是这样的:
{{action 'signIn' "password" email password}}最后,您的signIn操作代码应该如下所示:
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);
});
}, 发布于 2017-05-06 00:21:36
对于任何其他获得此错误的人,此时Ember版本2.13.1与Emberfire和torii有一个错误:内部"torii“实例是undefined,因为获得所有者或工厂的机制在Ember2.13中略有更改,因此不能调用"open”。到目前为止,的最新工作版本是2.12.0。
https://stackoverflow.com/questions/42640039
复制相似问题