【问题标题】:Firebase Returning Single Field of Single ResultFirebase 返回单个结果的单个字段
【发布时间】:2020-10-28 18:01:21
【问题描述】:

我对 firebase 有点陌生。

我一直在使用这样的 observables

 getClients()
  {
    return this.firestore.collection('Clients').snapshotChanges();
  }

但是,我只想返回一个字段的字符串值,这样我就可以从一个 Id 转到一个查找的友好名称。

我试过了,

  getClientById(clientID: string)
  {
    return this.firestore.collection('Clients').doc(clientID).snapshotChanges();
  }

我也试过调用 .get(), 但是,我还没有看到只返回该字段的方法。

这一定很简单。 基本上,我使用 ngFor 来显示所有诊所,但是,我使用字段“clientId”而不是复制 clientName(以防他们更改名称)。 所以,在 ngFor 我有 'aClinic.ClientId', 但是,我想在我的服务中调用一个函数,该函数将获取一个 ClientId,从 Client 表中查找它,并返回关联的 ClientName。

有什么想法吗? 谢谢 克里斯

【问题讨论】:

    标签: angular firebase google-cloud-firestore fetch


    【解决方案1】:

    对于网络和移动应用程序,Firestore 不提供仅查询特定单个文档字段的方法。您将始终获得与查询匹配的任何文档的全部内容。没有办法过滤掉不需要的字段。如果您想节省带宽,则应考虑将一个文档拆分为多个文档,以便只获得所需的内容。

    如果您正在编写后端代码,您可以使用select()(例如在 nodejs 上)来选择字段,但这不适用于 Web 和移动客户端。

    【讨论】:

    • 这与性能无关。我的大部分代码都遵循了数据非规范化。这就是我处理所提供服务的方式......但是,现在我希望每个诊所都属于一个客户,所以我打算使用另一个表中的 id 并查找它(我的脑海里一定在想 ms sql).. ..我可以对数据进行非规范化....如果客户端名称发生变化,我只需要级联更新
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多