Javascript 在AngularFire中迭代项目列表时,如何获取每个项目的ID?

Javascript 在AngularFire中迭代项目列表时,如何获取每个项目的ID?,javascript,angularjs,firebase,angularfire,Javascript,Angularjs,Firebase,Angularfire,控制器: ... $scope.items = ItemService; // This is injected correctly, no problem here. ... HTML: 我的问题是。。。如果我使用.add Firebase的.push添加项目,我不知道如何获取自动生成的ID 有什么想法吗?结果表明,您可以迭代键、值,这就实现了以下功能: HTML: 除了迭代键/值外,$firebase中的每条记录(假设它不是基元值)都会将键作为$id附加: 这个问题的答案如下: 答案是

控制器:

...

$scope.items = ItemService; // This is injected correctly, no problem here.

...
HTML:

我的问题是。。。如果我使用.add Firebase的.push添加项目,我不知道如何获取自动生成的ID


有什么想法吗?

结果表明,您可以迭代键、值,这就实现了以下功能:

HTML:


除了迭代键/值外,$firebase中的每条记录(假设它不是基元值)都会将键作为$id附加:


这个问题的答案如下:

答案是:

angularFire$add方法返回一个承诺,解析后将包含对新推送值的Firebase引用。使用该值,您可以获得UID

$scope.tests.$add({
  ...your object....
}).then(function(ref) { 

    //this is your id
    var id = ref.name(); 
  });

这就是我希望存在的答案——尽管我已经尝试过了,但是我没有看到$id属性的任何结果:即使我只是检索对象,这仍然有效吗?也就是说,此时不创建新对象,只读取现有对象不,这只是在添加新对象时从服务器读取响应。Firebase使用新列表项的id进行响应。
<div ng-repeat="(id, item) in items">
  <a ng-href="#/items/{{ id }}">{{ item.name }}</a>
</div>
<div ng-repeat="item in items">
  <a ng-href="#/items/{{ item.$id }}">{{ item.name }}</a>
</div>
$scope.tests.$add({
  ...your object....
}).then(function(ref) { 

    //this is your id
    var id = ref.name(); 
  });