其中一天有一个bug跟随另一个jeezzz ...使用firebase作为我的应用程序的简单数据源。当它崩溃时我正准备开始实现$firebaseSimpleLogin
并且我发现stackoverflow它被弃用而不是$firebaseAuth
。但是,现在我无法更新控制器中的函数,因为它会一次又一次地抛出相同的错误:
TypeError:ref。$ authWithPassword不是函数
我已将所有依赖项添加到我的控制器,从我的firebase源创建了ref对象,但仍然不允许我的用户(已创建)登录i。这是代码:
controllersModule.controller('HomeCtrl', ["$scope", "$firebaseAuth",
function($scope, $firebaseAuth) {
var ref = new Firebase("https://<MYUSERAPI>.firebaseio.com");
var auth = $firebaseAuth(ref);
$scope.user = {};
$scope.SignIn = function(e){
e.preventDefault();
var username = $scope.user.email;
var password = $scope.user.password;
//修正 - 仍然出错 auth。$ login(&#39;密码&#39;,{ 电邮:用户名, 密码:密码 }) .then(function(user){ //成功回调 console.log(&#39;身份验证成功&#39;); },function(error){ //失败回调 console.log(&#39;身份验证失败&#39;); }); } }]);
它告诉我at ref。$ authWithPassword不是函数?我错过了一个插件吗?
我有以下版本的firebase和Angular fire:
<script src="https://cdn.firebase.com/js/client/2.2.4/firebase.js"></script>
<script src="https://cdn.firebase.com/libs/angularfire/1.1.3/angularfire.min.js"></script>
我已进入此页面https://www.firebase.com/docs/web/guide/login/password.html
但无法使用我的登录/密码版本以角度重新创建其选项。
特别感谢今天的任何帮助。感谢。
答案 0 :(得分:1)
我已经修复了返回$ authWithPassword并按照Anid的帖子添加auth并且它可以正常工作。
$scope.user = {};
$scope.SignIn = function(e){
e.preventDefault();
var username = $scope.user.email;
var password = $scope.user.password;
auth.$authWithPassword ({
email: username,
password: password
})
.then(function(user) {
//Success callback
console.log('Authentication successful');
}, function(error) {
//Failure callback
console.log('Authentication failure');
});
}
答案 1 :(得分:0)
$authWithPassword
是一种AngularFire方法,而不是Firebase参考方法。您应该在auth
变量上调用该方法。