将Firebase唯一键用于ng-select值

角度:8.2.12

我想做什么: 用户创建新产品并为其选择包装产品的表单(另一个集合中的文档)。这些包装产品可以更改(例如价格),因此我想通过为这些文档创建的唯一密钥firebase连接它们。

我的HTML:

<ng-select [items]="packagingProducts | async"
  bindLabel="title"
  placeholder="Select item"
  appendTo="body"
  multiple="true"
  [(ngModel)]="selectedPackaging"
  formControlName="packaging"
  bindValue="key">
</ng-select>

如您所见,我尝试使用bindValue =“ key”保存为文档创建的唯一密钥Firebase,这是错误的,因为它在Firebase中存储为“ null”。

component.ts中的项目

packagingProducts = this.db.collection('packaging').snapshotChanges();

似乎我可以使用文档中的所有内容(例如标题),但是我不知道如何使用firebase唯一键(例如fBcRUsbEl2Xxka5MKkHu)。

liuxinnc 回答:将Firebase唯一键用于ng-select值

好的,所以我想我找到了一个适当的解决方案。在这里偶然发现: https://javebratt.com/angularfire-idfield/

为我的ng-select获取项目:

packagingProducts = this.db.collection('packaging').valueChanges({ idField: 'packagingproductId' });

我的HTML:

<ng-select [items]="packagingProducts | async"
  bindLabel="title"
  bindValue="packagingproductId"
  placeholder="Select item"
  appendTo="body"
  multiple="true"
  [(ngModel)]="selectedPackaging"
  formControlName="packaging">
</ng-select>
本文链接:https://www.f2er.com/3129304.html

大家都在问