Просто к вашему сведению; Я проверил все ранее заданные вопросы, и ни один из них не имеет прямого отношения к моей проблеме. У меня есть документы в коллекции, и я пытаюсь выслушать изменения в документах. Сначала я использую get()
для извлечения всех документов в коллекции, а затем перебираю их все для прослушивания изменений. Это может быть неправильный способ сделать это, но я не могу найти ничего другого в документах или в Интернете.
Моя проблема в том, что, поскольку я сначала использую get()
, слушатель onSnapshot не получает вызывается, если я не вручную refre sh. Я пытаюсь заставить его автоматически показывать изменения по мере их появления. Например, если я добавлю документ в коллекцию, я ожидаю его запуска.
Вот мой код:
const db = firestore().collection('Networks');
const NetworksListScreen = ({ navigation }) => {
const [state, setState] = useState({ networks: [] });
const { networks } = state;
const getNetworks = async () => {
try {
await db.get().then((querySnapshot) => {
let networks = [];
querySnapshot.forEach(doc => {
db.doc(doc.id).onSnapshot(newDoc => {
console.log(newDoc.id, '=====>', newDoc.data());
networks.push(doc.data());
});
});
setState({
networks: networks
});
});
} catch (err) {
console.log(err)
}
};
useEffect(() => {
getNetworks();
}, []);
}
Любая помощь очень ценится.