Firebase.set 失败:第二个参数必须是有效函数
Firebase.set failed: second argument must be a valid function
关注 Lynda.com 使用 angular 和 Firebase 构建数据驱动的应用程序。
当我尝试将注册函数与 set() 一起使用时,我收到了上述消息。 set() 仍在angular火API。我尝试搜索 SO 和文档,但找不到答案。
authentication.js
myApp.factory('Authentication', function($firebase,
$firebaseAuth, $routeParams, $location, FIREBASE_URL) {
var ref = new Firebase(FIREBASE_URL);
var auth = $firebaseAuth(ref);
//Temporary object
var myObject = {
login: function(user) {
return auth.$authWithPassword({
email: user.email,
password: user.password
}); //authWithPassword
}, //login
register: function(user) {
return auth.$createUser({
email: user.email,
password: user.password
}).then(function(regUser) {
var firebaseUsers = new Firebase(FIREBASE_URL+'users');
var userInfo = {
date : Firebase.ServerValue.TIMESTAMP,
regUser : regUser.uid,
firstname: user.firstname,
lastname : user.lastname,
email: user.email
}; //user info
firebaseUsers.set(regUser.uid, userInfo); //**ERRORS HERE**
}); //promise
} //register
}; //myObject
return myObject;
}); //myApp Factory
Firebase 的设置方法记录在此处:https://www.firebase.com/docs/web/api/firebase/set.html。它非常明确:
onComplete Function *optional
A callback function that will be called when synchronization to the Firebase servers has completed. The callback will be passed an Error object on failure; else null.
所以第二个(可选)参数是一个函数,当在服务器上设置值时将调用该函数。如果您从教程中复制了确切的代码,您可能应该联系作者并询问他们的意图。
他们更可能想做的是在子节点中设置用户数据。为此,请将有问题的行替换为:
firebaseUsers.child(regUser.uid).set(userInfo);
关注 Lynda.com 使用 angular 和 Firebase 构建数据驱动的应用程序。 当我尝试将注册函数与 set() 一起使用时,我收到了上述消息。 set() 仍在angular火API。我尝试搜索 SO 和文档,但找不到答案。
authentication.js
myApp.factory('Authentication', function($firebase,
$firebaseAuth, $routeParams, $location, FIREBASE_URL) {
var ref = new Firebase(FIREBASE_URL);
var auth = $firebaseAuth(ref);
//Temporary object
var myObject = {
login: function(user) {
return auth.$authWithPassword({
email: user.email,
password: user.password
}); //authWithPassword
}, //login
register: function(user) {
return auth.$createUser({
email: user.email,
password: user.password
}).then(function(regUser) {
var firebaseUsers = new Firebase(FIREBASE_URL+'users');
var userInfo = {
date : Firebase.ServerValue.TIMESTAMP,
regUser : regUser.uid,
firstname: user.firstname,
lastname : user.lastname,
email: user.email
}; //user info
firebaseUsers.set(regUser.uid, userInfo); //**ERRORS HERE**
}); //promise
} //register
}; //myObject
return myObject;
}); //myApp Factory
Firebase 的设置方法记录在此处:https://www.firebase.com/docs/web/api/firebase/set.html。它非常明确:
onComplete Function *optional
A callback function that will be called when synchronization to the Firebase servers has completed. The callback will be passed an Error object on failure; else null.
所以第二个(可选)参数是一个函数,当在服务器上设置值时将调用该函数。如果您从教程中复制了确切的代码,您可能应该联系作者并询问他们的意图。
他们更可能想做的是在子节点中设置用户数据。为此,请将有问题的行替换为:
firebaseUsers.child(regUser.uid).set(userInfo);