Firebase和Angular 2如何获得具有读取限制的子级计数

Firebase和Angular 2如何获得具有读取限制的子级计数,angular,firebase,angularfire2,Angular,Firebase,Angularfire2,我有一份带有链接预订的客户文档,按照谷歌的建议创建: clients: { clientkey1: { name: Some Name, reservations: { reskey1: true, reskey2: true } } } 和预订文件: reservations: { reskey1: { clientKey: clientkey1,

我有一份带有链接预订的客户文档,按照谷歌的建议创建:

clients: {
    clientkey1: {
        name: Some Name,
        reservations: {
            reskey1: true,
            reskey2: true
        }
    }
}
和预订文件:

reservations: {
    reskey1: {
        clientKey: clientkey1,
        doctorName: Doctor Name
    },
    reskey2: {
        clientKey: clientkey1,
        doctorName: Doctor Name
    },
    reskey3: {
        clientKey: clientkey2,
        doctorName: Doctor Name
    },
    reskey4: {
        clientKey: clientkey3,
        doctorName: Doctor Name
    },
    reskey5: {
        clientKey: empty
    }
}
现在,在客户的应用程序中,我必须列出他的预订,并计算所有预订,以了解他占用的部分以及还有多少地方可用等信息。我可以下载所有预订并使用clientKey进行筛选,但如何避免下载整个数据和其他客户的预订数据

有没有办法只从预订处下载钥匙?

没有,但是

exports.countReservations = functions.database.ref('/reservations/{id}').onWrite(event => {
  const collectionRef = event.data.ref.parent;
  const countRef = collectionRef.parent.child('reservationCount');

  return countRef.transaction(current => {
    if (event.data.exists() && !event.data.previous.exists()) {
      return (current || 0) + 1;
    } else if (!event.data.exists() && event.data.previous.exists()) {
      return (current || 0) - 1;
    }
  });
});