#javascript #vue.js #asynchronous #google-cloud-firestore
#javascript #vue.js #асинхронный #google-облако-firestore
Вопрос:
Я не знаю, как сохранить данные из firestore, я попытался сохранить их с помощью this.favLists, поэтому мне не нужно отправлять запросы каждый раз, когда я отправляю запрос.
export default defineComponent({
data() {
return{
favLists: '',
}
},
methods: {
async getFavorite() {
var docRef =
db.collection("userFavorites").doc(this.currentUser.uid);
docRef.get().then(function(doc) {
if (doc.exists) {
this.favLists = doc.data()
console.log(doc.data())
console.log(this.favLists)
} else {
console.log("No such document!");
}
}).catch(function(error) {
console.log("Error getting document:", error);
});
},
Комментарии:
1. Что вы получаете, когда вы регистрируете консоль
this.favLists
?2. Я просто просто получаю сообщение об ошибке «Ошибка при получении документа: TypeError: не удается установить свойство ‘favLists’ неопределенного значения при оценке (App.vue?3dfd:298)»
3. где вы
favLists
сначала объявили переменную?4. в разделе данных того же файла
5. Не могли бы вы вставить этот код в вопрос, пожалуйста
Ответ №1:
Похоже, что есть проблема с областью действия. Попробуйте заменить функции обратного вызова функциями со стрелками:
export default defineComponent({
data() {
return{
favLists: '',
}
},
methods: {
async getFavorite() {
var docRef =
db.collection("userFavorites").doc(this.currentUser.uid);
docRef.get().then((doc) => {
if (doc.exists) {
this.favLists = doc.data()
console.log(doc.data())
console.log(this.favLists)
} else {
console.log("No such document!");
}
}).catch((error) => {
console.log("Error getting document:", error);
});
},