我正在学习angularjs和firebase,我在承诺工作方面遇到了一些麻烦。它适用于$createUser
等每个angularfire函数,但不适用于.set()
等其他web api函数。根据文档,.set()
应该返回一个承诺
这是我的剥离代码:
controller.js
function setUserInformation(data) {
return usersService.addUserData(data.uid, user)
.then(function (userData) {
//do something
})
.catch(function(error) {
// handle error
});
}
usersService.js
function addUserData(uid, user) {
return firebaseDataService.users.child(uid).set({ name: user.name });
}
firebaseDataService.users
只是对我的firebase网址的引用:
firebaseDataService.users = new Firebase(MY_URL + '/users');
我收到以下错误消息:
angular.js:12416 TypeError: Cannot read property 'then' of undefined
at setUserInformation (auth.controller.js:31)
at auth.controller.js:23
at angular.js:14634
at n.$eval (angular.js:15916)
at n.$digest (angular.js:15727)
at angular.js:15955
at e (angular.js:5490)
at angular.js:5762
有人想指出我正确的方向吗?
谢谢!