Javascript Firebase:从另一个对象检索数据
我在Firebase中有两个对象,我试图通过将其键与messages对象中的用户值相匹配,从users对象检索url 我的数据如下所示:Javascript Firebase:从另一个对象检索数据,javascript,angularjs,firebase,Javascript,Angularjs,Firebase,我在Firebase中有两个对象,我试图通过将其键与messages对象中的用户值相匹配,从users对象检索url 我的数据如下所示: { "messages" : { "-JmY3zLmz9_6MjLRJCch" : { "message" : "test", "published" : 1428665136553, "user" : "twitter:14075704", "username" : "realph" }
{
"messages" : {
"-JmY3zLmz9_6MjLRJCch" : {
"message" : "test",
"published" : 1428665136553,
"user" : "twitter:14075704",
"username" : "realph"
}
},
"users" : {
"twitter:14075704" : {
"pic" : "https://pbs.twimg.com/profile_images/1180195102/23684_378330977259_680962259_4275328_5191_n_normal.jpg"
},
"twitter:86584100" : {
"pic" : "https://pbs.twimg.com/profile_images/378800000196615428/dfb3b5fbdc1a260cea977dc3f24262ab_normal.jpeg"
}
}
}
$scope.getImage = function (user) {
var users = $scope.users;
if (users[user] != null) { //check if the property exists
return users[user].pic;
}
return "No user found";
};
我正在尝试将messages.user与users.key匹配,以便检索pic值
app.js
index.html
做这件事最简单最好的方法是什么?我现在被难住了
感谢您的帮助。提前谢谢 因为用户是一个对象,所以它看起来像是由userId键入的字典,只需检查属性即可。可以使用获取带有字符串变量的对象的属性。这对于具有类似于字典的设置的对象非常有用,因为属性名称是字典的键
最简单的是,将用户字符串转换为其图像src的函数如下所示:
{
"messages" : {
"-JmY3zLmz9_6MjLRJCch" : {
"message" : "test",
"published" : 1428665136553,
"user" : "twitter:14075704",
"username" : "realph"
}
},
"users" : {
"twitter:14075704" : {
"pic" : "https://pbs.twimg.com/profile_images/1180195102/23684_378330977259_680962259_4275328_5191_n_normal.jpg"
},
"twitter:86584100" : {
"pic" : "https://pbs.twimg.com/profile_images/378800000196615428/dfb3b5fbdc1a260cea977dc3f24262ab_normal.jpeg"
}
}
}
$scope.getImage = function (user) {
var users = $scope.users;
if (users[user] != null) { //check if the property exists
return users[user].pic;
}
return "No user found";
};
HTML:
查看此这很好,但它始终返回“未找到用户”。不知道我做错了什么。有些东西告诉我,我不能公开照片,因为我没有提取Firebase快照…这很奇怪。该属性可能确实存在,但为空。也许更改为“如果用户[用户]会有所帮助”。如果没有,则必须进行更多的调试,并找出调用函数时$scope.users和user的外观。
<div ng-repeat="message in messages">
Image src: {{ getImage(message.user)}}
<img ng-src="{{getImage(message.user)}}" />
</div>