Object 在0.8 angularFire更新后,是什么取代了$child方法?

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(),

我试图使用angularFire中的
$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我的意思是,这是一个打字错误。