在firebase对象中创建嵌套数组

时间:2016-07-13 15:10:46

标签: angularjs firebase

我想将值推送到存储在firebase数据库中的嵌套数组。目标如下:

rateData is the array i want to push new data

我查询firebase数据库并接收快照。有了这个快照,我想存储我的更改。如果我按下新值,它会在firebase中创建我:

Firebase after push

如何避免使用唯一的FB ID并将其替换为普通的索引计数器?

来自角度服务的代码:

        //Save StarBewertung on Mamis
        this.saveStarOnMami = function (data) {
            var ref = new Firebase("https://incandescent-heat-5149.firebaseio.com/contacts")

            var query = ref.orderByChild("id").equalTo(data).on("child_added", function(snapshot) {

                if( snapshot.val() === null ) {
                    /* does not exist */
                } else {
                    //snapshot.ref().update({"phone_fixed": '123'});
                    snapshot.ref().child('rateData').push(1);
                }
            });
        }

有没有办法将快照作为$ firebaseobject获取,操作它,然后使用$ save将其保存到Firebase数据库?

...谢谢

1 个答案:

答案 0 :(得分:1)

dbRef.push()将始终使用新UID作为键附加数据。 请改用dbRef.update()dbRef.set()

示例(未经测试)

 var rateSnapshot = snapshot.child('rateData');
 if( rateSnapshot.val() === null ) {  // rateData key does not exist
    rateSnapshot.ref().set([5]);
 } else {
    var rates = rateSnapshot.val(); //should be an array
    rates.push(1); //append new value to the array
    rateSnapshot.ref().set(rates);
 }