Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase:从另一个对象检索数据_Javascript_Angularjs_Firebase - Fatal编程技术网

Javascript Firebase:从另一个对象检索数据

Javascript Firebase:从另一个对象检索数据,javascript,angularjs,firebase,Javascript,Angularjs,Firebase,我在Firebase中有两个对象,我试图通过将其键与messages对象中的用户值相匹配,从users对象检索url 我的数据如下所示: { "messages" : { "-JmY3zLmz9_6MjLRJCch" : { "message" : "test", "published" : 1428665136553, "user" : "twitter:14075704", "username" : "realph" }

我在Firebase中有两个对象,我试图通过将其键与messages对象中的用户值相匹配,从users对象检索url

我的数据如下所示:

{
  "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>