У меня есть документ Cloud Firestore, который должен быть массивом объектов.Это выглядит так:
docname: {
0: {...}
1: {...}
2: {...}
Это ожидаемо, потому что я заполнил этот документ следующим образом
myDocRef.set( {...user.myArray});
Проблема, с которой я столкнулся, - это когда я получаю данные из документа.В настоящее время я делаю это следующим образом
getUserItems(uid) {
return this._db.doc<MyObj>(`users/${uid}/mysubcollection/items`).valueChanges();
}
, который возвращает объект объектов, и мне нужно, чтобы он был массивом объектов, чтобы я мог использовать forEach()
для него.
Я пыталсяиспользуя оператор map()
, но он дает мне некоторые результаты, которых я не понимаю.
Итак, моя цель - преобразовать этот объект объектов в массив объектов, и я попытался это
items$.pipe(
tap(item => console.log('before map', item )),
map(item => [item]),
tap(item => console.log('after map', item ))
)
.subscribe(...);
Это действительно своего рода работа, так как он преобразует объект объектов в массив объектов, но, конечно, он помещает все объекты в первый dim из двух dim-массивов, чтобы он выглядел следующим образом
Array [Object(9)]
Чтомогу ли я сделать здесь, чтобы преобразовать объект объектов в массив объектов так, чтобы мой конечный результат был таким
Array(9) [ {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…} ]
Итак, переходя от этого
Object(9) [ {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…} ]
к этому
Array(9) [ {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…} ]