Можно ли получить только данные из Cloud Firestore?
Сейчас я выбираю все документы из коллекции, затем я использую l oop, чтобы получить только те данные, которые я сохранено уже в Firestore, как показано ниже:
const data = {};
const snap = await db.collection("rooms").where("ppl","array-contains", myUsername).get({source:"cache"});
for (let i = snap.size -1; i >= 0; i--){
const {room} = snap.docs[i].data();
const snapshot = await db.collection(`rooms/${room}/msgs`).orderBy("dt","desc").limit(50).get({source:"cache"});
const tempMessages = [];
if (len2 > 0) {
for (let k = 0; k < len; k++) {
tempMessages = [...tempMessages, snapshot.docs[k].data()];
}
}
data = { ...data, [room]: tempMessages};
}
setRoomsMessages(data);
Теперь, что я хочу ???
Я хочу получить только и только массив из snapshot.docs[k].data()
( необходимые данные ).
Почему ? потому что я хочу получить needed
данные и затем передать их state
напрямую. Есть, мне не нужны два вложенных l oop Я только l oop rooms
и не для каждого room messages
.