通过id从firestore的集合中检索文档

时间:2018-04-01 18:55:24

标签: angular google-cloud-firestore angularfire2

我有一系列活动,其中有多个文件。我想在点击按钮上检索特定文档。

收藏:活动

文档ID :自动ID

字段:activityid,locked,section,maxPlayers,name

这里我正在检索整个集合

this.activities = afs.collection('activities', x => x.orderBy('section', 
'asc')).valueChanges();

我将这些收藏品显示在表格中;

<tr *ngFor="let activity of activities | async  | paginate: { itemsPerPage: 10, currentPage: p }; let i =index">
    <td>
        {{activity.section}}
    </td>
    <td >
        {{activity.name}}
    </td>
    <td>
        {{activity.maxPlayers}}
    </td>
    <td>
        {{activity.locked}}
    </td>
    <td>
        <button type="button" class="btn btn-success" 
            (click)="onEdit(activity.id);  secondModal.show() "><i 
            class="fa fa-pencil"></i>
                       Edit
        </button>
</td>

我在OnEdit()函数上传递了一个id参数。在OnEdit函数中,我想通过id检索选择性文档。并将模型中的文档字段显示为:

<div *ngFor="let activity of activities | async >
    {{activity.section}}        
    {{activity.name}}                    
    {{activity.maxPlayers}}                    
    {{activity.locked}}

我尝试过这么多人认为但是不行。它始终显示所有文档。我想只检索按钮单击的文档。

1 个答案:

答案 0 :(得分:0)

修改:activities.component.html文件中:

  <td>
    <button type="button" class="btn btn-success" 
      (click)="onEdit(activity);  secondModal.show()"><i 
      class="fa fa-pencil"></i>
        Edit
     </button>
  </td>

并在activities.component.ts档案中:

onEdit(activity){ 
  this.afs.doc("activities/"+activity.id).valueChanges();
  this.activity = activity;
  ..... your code
}

您必须在activity文件中声明activities.component.ts变量,就像使用activities变量一样,并且可以在模态模板中使用它而不需要{ {1}}指令。