Запросить вложенную коллекцию для подсчета строк для идентификатора счета - PullRequest
0 голосов
/ 08 октября 2019

Я работаю над приложением счетов-фактур с Angular и Firebase. Мне нужно посчитать, сколько строк в настоящее время в коллекции + 1, чтобы иметь мой идентификатор счета. Проблема в том, что этот счетчик должен начинаться с 1, если у нас новый год. Я думал, что мог бы сделать что-то вроде invoices / 2019, который является просто коллекцией в коллекции, поэтому я мог легко сосчитать все строки во второй коллекции, но вы не можете сделать коллекцию в коллекции. Из-за этого я сделал следующие счета / 2019 / октябрь / id, который является коллекцией / doc / collection / doc. 2019 будет текущим годом, а октябрь будет текущим месяцем. Теперь я не знаю, как подсчитать каждый счет за текущий год для моего счетчика. Также я не уверен, является ли это даже лучшим решением.

// How I create an entry to the database
currentYear: string = this.datepipe.transform(new Date, 'yyyy');
currentMonth: string = this.datepipe.transform(new Date, 'MMMM');
this.afs.collection('invoices').doc(this.currentYear).collection(this.currentMonth).add(data);

// Currently I use the following which outputs 2019-001 and so on
this.afs
      .collection('invoices')
      .valueChanges()
      .subscribe(res => {
        this.invoiceID = res.length + 1;
        const invoiceIDFormatted = ('00' + this.invoiceID).slice(-3);
        this.service.form
          .get('invoiceID')
          .setValue(currentDateYear + '-' + invoiceIDFormatted);
      });

В настоящее время это работает для счетов / идентификаторов, но мне нужно, чтобы оно работало с счетами / 2019 / october / id, что означает, что оно должно бытьчерез все месяцы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...