Я написал следующий код, чтобы проверить, находятся ли два пользователя внутри комнаты:
useEffect(() => {
var chatroom = db.collection('test').where("Users", "array-contains", `${selectedUser}`);
chatroom.get().then(snapshot => {
snapshot.forEach(doc => {
if (doc.data().Users.includes(username) && doc.data().Users.includes(selectedUser)) {
console.log("Found match");
...etc...
setMessages(objects);
}
else {
console.log("Didn't find a valid chat");
setMessages([]);
}
console.log("???");
})
});
}, [username, selectedUser]);
Он работает правильно, если условие if выполнено успешно, однако, если условие ложно, то выиграл else не выполняется, и даже console.log ("???") никогда не запускается. Я не уверен, что могло быть причиной этого.
Изменить: я нашел работу, добавив логическое значение, чтобы указать, было ли найдено совпадение. Код за пределами снимка все еще работает, поэтому я просто переместил туда материал.
Edit2: На самом деле это не работает, так как я забыл, javascript просто запустит код внизу, прежде чем данные будут извлечены.