无法获得承诺在Firebase中使用.set()

时间:2016-04-11 21:33:19

标签: javascript angularjs firebase promise

我正在学习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

有人想指出我正确的方向吗?

谢谢!

0 个答案:

没有答案