使用 $add angularfire 生成自定义密钥
generate custom key with $add angularfire
当我使用 $add
函数添加新记录时,如何在 angularfire 中的数组中生成自定义键。看看源码中什么时候是下面的注释。这是我下面的代码,但仍然得到 firebase 生成的随机密钥。
register : function(user){
return simpleLogin.$createUser({
email: user.email,
password: user.password
}).then(function(regUser){
//console.dir(regUser);
var ref = new Firebase(FIREBASE_URL + 'users');
var firebaseUsers = $firebaseArray(ref);
var userInfo = {
date: Firebase.ServerValue.TIMESTAMP,
regUser: regUser.uid,
firstname: user.firstname,
lastname: user.lastname,
email: user.email
}
//this is when i want to generate the key
firebaseUsers.$add(userInfo).then(function(ref) {
});
});
},//register
调用 $add
只会导致所谓的 push id。如果您不想使用那些推送 ID 来标识对象,解决方案是不调用 $add
/push
。
相反,您可以直接访问要创建的子项:
var ref = new Firebase(FIREBASE_URL + 'users');
var userInfo = {
date: Firebase.ServerValue.TIMESTAMP,
regUser: regUser.uid,
firstname: user.firstname,
lastname: user.lastname,
email: user.email
}
ref.child(regUser.uid).set(userInfo);
这里要注意两点:
- 该代码片段在
regUser.uid
下创建了子节点。如果您需要另一把钥匙,您可以替换它。
- 此代码段不使用 AngularFire,而是直接使用 Firebase JavaScript SDK。由于 AngularFire 是建立在 JavaScript SDK 之上的,因此它们可以完美地互操作。因此,如果您需要一个在 AngularFire 中不是很明显的操作,那么检查您是否可以(更轻松地)使用常规 Firebase JavaScript SDK 来完成它可能是值得的。
在上面的 mester Frank van Puffelen 的帮助下,我修改了代码:
register : function(user){
return simpleLogin.$createUser({
email: user.email,
password: user.password
}).then(function(regUser){
//console.dir(regUser);
var ref = new Firebase(FIREBASE_URL + 'users');
var firebaseUsers = $firebaseArray(ref);
var userInfo = {
date: Firebase.ServerValue.TIMESTAMP,
regUser: regUser.uid,
firstname: user.firstname,
lastname: user.lastname,
email: user.email
}
//the added portion of code
ref.child(regUser.uid).set(userInfo);
firebaseUsers.$add(userInfo).then(function(ref) {
});
});
},//register
我得到了我想要的结果,在 angularfire API 中没有函数('child()' 和 set() )但是正如 mester post [=26] 中提到的=]Frank van Puffelen angularfire API 建立在 firebase API .
上
这是我从我的数据库 firebase 中捕获的图像。
当我使用 $add
函数添加新记录时,如何在 angularfire 中的数组中生成自定义键。看看源码中什么时候是下面的注释。这是我下面的代码,但仍然得到 firebase 生成的随机密钥。
register : function(user){
return simpleLogin.$createUser({
email: user.email,
password: user.password
}).then(function(regUser){
//console.dir(regUser);
var ref = new Firebase(FIREBASE_URL + 'users');
var firebaseUsers = $firebaseArray(ref);
var userInfo = {
date: Firebase.ServerValue.TIMESTAMP,
regUser: regUser.uid,
firstname: user.firstname,
lastname: user.lastname,
email: user.email
}
//this is when i want to generate the key
firebaseUsers.$add(userInfo).then(function(ref) {
});
});
},//register
调用 $add
只会导致所谓的 push id。如果您不想使用那些推送 ID 来标识对象,解决方案是不调用 $add
/push
。
相反,您可以直接访问要创建的子项:
var ref = new Firebase(FIREBASE_URL + 'users');
var userInfo = {
date: Firebase.ServerValue.TIMESTAMP,
regUser: regUser.uid,
firstname: user.firstname,
lastname: user.lastname,
email: user.email
}
ref.child(regUser.uid).set(userInfo);
这里要注意两点:
- 该代码片段在
regUser.uid
下创建了子节点。如果您需要另一把钥匙,您可以替换它。 - 此代码段不使用 AngularFire,而是直接使用 Firebase JavaScript SDK。由于 AngularFire 是建立在 JavaScript SDK 之上的,因此它们可以完美地互操作。因此,如果您需要一个在 AngularFire 中不是很明显的操作,那么检查您是否可以(更轻松地)使用常规 Firebase JavaScript SDK 来完成它可能是值得的。
在上面的 mester Frank van Puffelen 的帮助下,我修改了代码:
register : function(user){
return simpleLogin.$createUser({
email: user.email,
password: user.password
}).then(function(regUser){
//console.dir(regUser);
var ref = new Firebase(FIREBASE_URL + 'users');
var firebaseUsers = $firebaseArray(ref);
var userInfo = {
date: Firebase.ServerValue.TIMESTAMP,
regUser: regUser.uid,
firstname: user.firstname,
lastname: user.lastname,
email: user.email
}
//the added portion of code
ref.child(regUser.uid).set(userInfo);
firebaseUsers.$add(userInfo).then(function(ref) {
});
});
},//register
我得到了我想要的结果,在 angularfire API 中没有函数('child()' 和 set() )但是正如 mester post [=26] 中提到的=]Frank van Puffelen angularfire API 建立在 firebase API .
上这是我从我的数据库 firebase 中捕获的图像。