推送的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
似乎是最好的方法。
答案 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;那么你确实知道推送键是什么,应该能够使用它是你参考的一部分。
参考文献: