如何更新推送的Fire Base对象

时间:2016-07-25 08:10:22

标签: firebase firebase-realtime-database

推送的firebase对象隐藏在唯一键后面,除非您使用childAdded,否则难以引用推送对象。如果要在对象上使用update,则需要引用。

{
    "ideaCount" : 0,
    "ideas" : {
        "-KNVuaB6ZaRCLmH0q8ic" : {
            "idea" : {
                "likes" : 0,
                "name" : "test"
            }
        },
        //unique key, every idea will have a new one of these
        "-KNVucJEgZxz_N0P8bcv" : {
            //want to reference this
            "idea" : { 
            "likes" : 0,
            "name" : "jkl"
        }
    }
}

是否有可能更新该想法"对象没有明确地将该唯一键放在引用中?

我可以在唯一键后启动引用吗?根据我的经验,你需要从根开始参考。

更具体地说,我希望能够改变"喜欢"在按下按钮时向上和向下编号,update似乎是最好的方法。

1 个答案:

答案 0 :(得分:1)

要简单回答您的问题,。您需要使用推送键来完成对ideas/some-idea/likes的引用。但是,我假设您正在列出这些"想法"所以人们可以喜欢它们,你总是可以使用按键。例如:

JavaScript

var theIdeas= [];
var ref = firebase.database().ref("ideas");
ref.once("value").then(function(snapshot) {
    snapshot.forEach(function(childSnapshot) {
        // Push key
        var key = childSnapshot.key;
        // childData will be the actual contents of the child
        var childData = childSnapshot.val();
        });
        theIdeas.push(childData);
}, function(error) {

});

AngularJS

var ref = firebase.database().ref("ideas");
var ideas = $firebaseArray(ref);

<!-- Push key is stored inside $id -->
<div ng-repeat"i in ideas"> {{i.$id}} </div>

收到该信息后,随心所欲。重点是,如果你已经抓住了一个&#34;想法&#34;那么你确实知道推送键是什么,应该能够使用它是你参考的一部分。

参考文献:

Firebase | key