执行Firebase查询时忽略字段

时间:2019-04-21 19:33:44

标签: javascript firebase google-cloud-firestore angularfire2

执行Firebase查询时是否可以省略特定字段?

以下查询:

 getReferredUsers(referralId) {
    this.logger.debug(`Getting referred users by referral id ${referralId}`);
    if (referralId) {
      return this.afs.collection('users', ref => ref.where('referredBy', '==', referralId).limit(3)).valueChanges();
    }
  }

返回以下内容:

  {
    "displayName": null,
    "email": "theshizy@hotmail.co.uk",
    "emailVerified": true,
    "firstName": "James",
    "lastName": "Burton",
    "photoURL": "https://i.imgur.com/LHhAQBH.jpg",
    "referralId": "6O5qGmRQ",
    "referredBy": "cpRcYiov",
    "selectedCurrency": "GBP",
    "selectedTimezone": "(UTC) Edinburgh, London",
    "uid": "LjZ8TAb4ZGhgw2DGubbVosw8dkd2"
  }
]

我可以进一步削减它,使其仅返回以下内容:

  {
    "emailVerified": true,
    "firstName": "James",
    "lastName": "Burton",
    "photoURL": "https://i.imgur.com/LHhAQBH.jpg",
    "referralId": "6O5qGmRQ",
  }
]

1 个答案:

答案 0 :(得分:0)

Firestore客户端SDK始终返回完整的文档。尽管server-side SDKs' select methods中确实存在该选项,但无法通过客户端SDK仅请求文档的一部分。

如果只需要一部分信息,请考虑创建一个附加集合,其中每个文档仅包含您需要的数据。这也使您可以更轻松地保护对不同类型数据的访问。

另请参阅: