Связанные с Firebase запросы к базе данных не работают должным образом - PullRequest
0 голосов
/ 26 февраля 2020

Я использую реагирование, чтобы написать функцию, которая отправляет сообщение, и сначала он выполняет 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);
}

1 Ответ

0 голосов
/ 26 февраля 2020

Не должна ли строка, в которой вы назначаете name, выглядеть так:

const name = '${doc.data().firstName} ${doc.data().lastName}'

В противном случае выглядит нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...