使用$set()将用户对象添加到Firebase中的/users
我目前正试图通过AngularFire使用$set()将用户对象添加到Firebase中的/users,firebase,angularfire,Firebase,Angularfire,我目前正试图通过AngularFire$set()方法向Firebase添加新用户。我正在通过AngularFire的$createUser方法创建新用户。我的代码如下所示: $scope.createUser = function() { $scope.auth.$createUser('dolly@gmail.com', 'password').then(function(user, err) { if (err) { console.log(
$set()
方法向Firebase添加新用户。我正在通过AngularFire的$createUser
方法创建新用户。我的代码如下所示:
$scope.createUser = function() {
$scope.auth.$createUser('dolly@gmail.com', 'password').then(function(user, err) {
if (err) {
console.log('ERROR: ' + err);
} else {
sync.$set('users', user);
}
});
}
这是一个创建新用户并将新用户对象放置在用户中:{..},但是,它还添加了一个额外的用户子对象,该子对象只是重复数据——这就是代码添加到Firebase中的内容:
{
"users": {
"email": "dolly@gmail.com",
"id": "11",
"isTemporaryPassword": false,
"md5_hash": "xxxxxxxxxxxxxxx",
"provider": "password",
"sessionKey": "xxxxxxxxxxxxx",
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE0MDc5NDQ2NDYsInYiOjAsImQiOnsicHJvdmlkZXIiOiJwYXNzd29yZCIsImlkIjoiMTEiLCJ1aWQiOiJzaW1wbGVsb2dpbjoxMSIsImVtYWlsIjoiZG9sbHlAZ21haWwuY29tIiwibWQ1X2hhc2giOiIzsdrggfeedsaadrfcDc0ZDRhMTU5NTk2NzI1NzFmMDk2ZTZlNyIsImlzVGVtcG9yYXJ5UGFzc3dvcmQiOmZhbHNlLCJzZXNzaW9uS2V5IjoiM2MwMDNjODkxMDEzOWE5MjhlZTZjNWI1NjU5ZTRiZjMifSwiaWF0IjoxNDA3ODU4MjQ2fQ.p7-9GDtaNpBn1ICTLIUSwlPytaUGi-jyBgcO-LKHUys",
"uid": "simplelogin:11",
"user": {
"email": "dolly@gmail.com",
"id": "11",
"isTemporaryPassword": false,
"md5_hash": "xxxxxxxxxxxxxxx",
"provider": "dfrggrssxxxxxxx",
"sessionKey": "xxxxxxxxxxxxxxx",
"uid": "simplelogin:11"
}
}
理想情况下,我希望我的users对象看起来像firebase中的示例,但每个用户密钥都是user.uid中的任何内容
users: {
user1: {
name: "Alice"
},
user2: {
name: "Bob"
}
}
每个新用户将被添加到users:{…}
键,而不附加重复的用户子项?如果您创建对users/
的引用,然后在该路径上调用$set
,那么您包含的任何数据都将替换该路径上的任何内容。这是。如果不是整个指南的话,你应该至少从这一节开始阅读
选择创建同步对象时要设置数据的路径
var ref = new Firebase('.../users/'+user.uid);
var sync = $firebase(ref);
sync.$set({ email: user.email, provider: user.provider });
或者,更好的做法是,在引用上设置它,因为您没有将它用于客户端绑定
var ref = new Firebase('.../users/'+user.uid);
ref.set({ email: user.email, provider: user.provider });
创建配置文件在中进行了解释,并在AngularFire Seed repo中进行了介绍,与您的示例几乎一字不差。请尝试阅读不到2年的答案版本。