无法访问从firebase返回的对象属性

时间:2016-07-05 10:13:14

标签: angularjs firebase firebase-realtime-database

这可能是一个菜鸟问题,因为我无法在stackoverflow中找到任何类似的问题。我正在编写一个以firebase为后端的ionic-angularjs应用程序。我是firebase snapshot.val()方法返回的数据快照,这是数据在我的chrome控制台中显示的方式(附图)

var tmp = {};
CurrUser.getEventdesc(eventid).then(function (result) {
tmp = result;
console.log(tmp.Description);
});

CurrUser是一个工厂,getEventdesc是工厂中的一个功能。 getEventdesc函数如下所示:

getEventdesc: function(id) {
var deferred = $q.defer();
ref.child('Events').orderByChild('Eventid').equalTo(id).on('value', function (snapshot) {
event = snapshot.val();
console.log(event);
deferred.resolve(event);
});
return deferred.promise;
}   

enter image description here

现在我正在尝试访问“说明”'我的angularjs控制器中的tmp.Description属性,但我得到了一个未定义的'错误。如果有人能帮助我访问对象属性,我将不胜感激。谢谢你的时间。

更新2:

var tmp = {};
var newtemp = {}; 
CurrUser.getEventdesc(eventid).then(function (result) { 
tmp = result;
for (var itemID in tmp) { 
newtmp = tmp[itemID]; 
}; 
console.log(newtmp.Description); 
});

此致

1 个答案:

答案 0 :(得分:0)

你正在重新调整整个firebase对象,而不仅仅是请求的id,试试这个:

event = snapshot.val();
deferred.resolve(event[id]);