Я пытаюсь получить данные из Firebase Cloud Firestore и загрузить их в мое приложение Reactjs после загрузки в браузер.Тем не менее я получаю следующую ошибку.
сообщение об ошибке
Необработанное отклонение (TypeError): Не удается прочитать свойство 'then' из неопределенного
Ошибка возникает в следующей строке:
firebaseService.getUserData(authUser.uid).then(user => { ...
Я получаю начальную загрузку страницы с задержкой около двух секунд, а затем появляется ошибка.Поэтому я подозреваю, что это происходит из-за того, что какое-то пропущенное обещание или обратный вызов были обработаны неправильноЯ пытался использовать async
await
в нескольких местах, но безуспешно.
Как решить эту проблему, чтобы правильно загрузить и загрузить мои данные?
Auth.js
import firebaseService from 'firebaseService';
...
class Auth extends Component {
...
firebaseCheck = () => {
firebaseService.onAuthStateChanged(authUser => {
if (authUser) {
this.props.showMessage({ message: 'Logging in with Firebase' });
// Retrieve user data from Firebase
firebaseService.getUserData(authUser.uid).then(user => { // <-- error occurs here
this.props.setUserDataFirebase(user, authUser);
this.props.showMessage({ message: 'Logged in with Firebase' });
})
}
});
};
}
firebaseService.js
getUserData = userId => {
if (!firebase.apps.length) {
return;
}
const docRef = this.firestore.doc('users/myuserid');
docRef.get().then(doc => {
if (doc.exists) {
console.log("Document data:", doc.data());
return doc.data;
} else {
console.log("No such document!");
}
}).catch(error => {
console.log("Error getting document:", error);
});
};