Я начинаю использовать материал Angular с облачным пожарным хранилищем, и у меня возникает следующая проблема с источником данных и источником данных для таблицы.Проблема в том, что запрос к firestore возвращает объект с индексами, а MatTableDataSource нужен массив, и я не могу преобразовать объект, который возвращает запрос, в массив.Я пытался использовать циклы и оператор .map для заполнения пустого массива, но я всегда создаю массив объектов с индексом, а не простой массив объектов.
это моя база данных:
Коллекция, которую я запрашиваю
Мой сервис:
findpagosCliente(pagosId: number[]) {
const col = this.afs.collection<Cliente>('pagoscliente')
const queries = pagosId.map(el => col.doc(el.toString()).valueChanges());
return combineLatest(...queries);
}
Мой компонент:
inicializarTablaPagos() {
this.clienteService.findpagosCliente(this.clienteSeleccionado.facturacion.pagos).subscribe((pagos) => {
this.dataSource = new MatTableDataSource(pagos);
this.dataSource.paginator = this.paginator;
this.showClientData = true;
})
}
MatTableDataSource ожидает массивано запрос angularfire2 отправляет меня обратно и объект выглядит так: объект из firestore
Я пробовал много циклов и операторов, чтобы попытаться создать новый простой массив, но все они в конечном итоге генерируютновый массив, как в предыдущем изображении.Например, это:
this.clienteService.findpagosCliente(this.clienteSeleccionado.facturacion.pagos)
.subscribe((pagos) => {
let arraytemp = [];
pagos.map(element => {
arraytemp.push(element)
})
this.dataSource = new MatTableDataSource(arraytemp);
this.dataSource.paginator = this.paginator;
this.showClientData = true;
})
Я знаю, что делаю что-то не так, и это будет очень очевидно, но сейчас я не могу этого увидеть.
Спасибо за ваши ответы