Object 在0.8 angularFire更新后,是什么取代了$child方法?
我试图使用angularFire中的Object 在0.8 angularFire更新后,是什么取代了$child方法?,object,set,firebase,angularfire,Object,Set,Firebase,Angularfire,我试图使用angularFire中的$child方法在我的数据库中设置一些信息,结果发现它在0.8版本更新中被完全删除 然后,我通过阅读以下内容来了解替代品是什么: 但这并没有说明情况 如果我遇到这样的情况: $scope.validate = function() { //--- Some validation here ---// var userInfo = { firstname: $('#firstname').val(),
$child
方法在我的数据库中设置一些信息,结果发现它在0.8版本更新中被完全删除
然后,我通过阅读以下内容来了解替代品是什么:
但这并没有说明情况
如果我遇到这样的情况:
$scope.validate = function() {
//--- Some validation here ---//
var userInfo = {
firstname: $('#firstname').val(),
lastname: $('#lastname').val(),
streetAddress: $('#street-address').val(),
city: $('#city').val(),
zip: $('#firstname').val(),
country: $('#country').val(),
email: $('#email').val(),
password: $('#password').val(),
confirmedPassword: $('#confirmed-password').val()
}
$scope.registerNewUser(userInfo);
},
$scope.registerNewUser = function(userInfo) {
var ref = new Firebase("https://pie-shop.firebaseio.com/");
ref.createUser({
email : userInfo.email,
password : userInfo.password
}, function(error, user) {
if (error === null) {
$scope.storeUserInfo(userInfo, user);
}
else {
console.log(error);
}
});
},
$scope.storeUserInfo = function(userInfo, user) {
var ref = new Firebase('https://pie-shop.firebaseio.com/users/' + user.uid);
var sync = $firebase(ref);
sync.$child(user.uid).set({
firstname: userInfo.firstname,
lastname: userInfo.lastname,
streetAddress: userInfo.streetAddress,
city: userInfo.streetAddress,
zip: userInfo.zip,
country: userInfo.country
});
}
如果我需要设置一个名为user.uid
(用户id)的键,并且该键应该包含userInfo
对象中的信息,那么既然$child
已被删除,我现在该怎么做呢?我已经搜索了几个小时,但找不到任何关于这方面的东西来解释如何在angularFire中具体实现它
预过账说明:
在检查了API文档之后,它说仅仅使用
sync.$set({foo:'bar'})
应该可以工作,但在我的情况下,它也不适合我。有人能告诉我哪里出错了吗?我不完全确定AngularFire 0.8之前的$child
方法做了什么。但这可能与Firebase的常规child
方法有关
在这种情况下,而不是:
var ref = new Firebase(...);
var sync = $firebase(ref);
sync.$child(user.uid)...
您还可以执行以下操作:
var ref = new Firebase(...).child(user.uid);
var sync = $firebase(ref);
sync...
是的,我试过了,但似乎也不起作用。这真的很奇怪。您的原始代码似乎有双
uid
用法,我不确定它应该做什么:var ref=new Firebase('https://pie-shop.firebaseio.com/users/'+user.uid);var sync=$firebase(ref);sync.$child(user.uid).set({
。这可能是一个我忘记更改的打字错误。我只会尝试一个。当从引用中删除一个user.uid时,它实际上起了作用。如果您说出$child
过去的用法,可能会更容易帮助您。另外:当您说您检查了API文档时,请包含一个到相关部分的链接,以便我们可以“检查一下你读到的内容,看看是否有误解的余地。”FrankvanPuffelen添加了链接。该博客没有说明这个问题:AngularFire的重点是处理同步收集和绑定。我们的目标从来没有仅仅是复制带有“$sign”的Firebase API前缀。为了便于实现这一目的,我们在本版本中删除了$child()和$on()。新的工厂方法将提供比使用$on()对数据进行黑客攻击更好的功能,并且在必要时仍然可以使用$ref()将函数降到SDK级别。您引用的API文档使用sync.$set(key,value)
,而不是sync.set(value)
@Kato我的意思是,这是一个打字错误。