Я использую реагирование, чтобы написать функцию, которая отправляет сообщение, и сначала он выполняет GET-запрос к базе данных на основе входных данных. После того, как этот результат, он получает помещает в State (receiveName). Наконец, он отправляет запрос в базу данных с этим состоянием и некоторой другой информацией.
Однако проблема возникает после ее завершения. Кажется, все есть, кроме одного поля receiveName из состояния. Это как состояние исчезает по какой-то причине и оставляет поле пустым (""). Я попробовал все записи в консоли, и запросы GET и POST работают нормально, за исключением одной вещи.
const [receiverName, setReceiverName] = useState('')
const sendMessage = async () => {
try {
await db
.collection('users')
.doc(receiver)
.get()
.then(doc => {
const name = doc.data().firstName} ${doc.data().lastName
setReceiverName(name)
})
.then(
db
.collection('messages')
.doc(receiver)
.collection('senders')
.doc(currentUser.email)
.set({
senderEmail: currentUser.email,
senderName: currentUser.displayName,
senderPhoto: currentUser.photoURL,
receiverEmail: receiver,
receiverName: receiverName,
})
catch(error){
console.log(error);
}