我正在构建一个应用程序,在这个应用程序中,我有一个个人资料页面。在此个人资料页面中,我想显示有关当前用户的信息,例如名称,用户名等。...我创建了一个firestore()
函数,该函数通过用户uid获取用户集合(因为我的用户集合与用户uid相同的名称)。当我启动我的应用程序时,什么也没有出现,并且当我想通过输入中输入一些文本来更新名称或用户名时,出现错误。这个错误告诉我:
[Vue warn]: Error in v-on handler: "TypeError: Cannot read property 'profile' of undefined"
found in
---> <Profile> at popup/components/profile/extension_useraccount.vue
<ExtensionmainComponent> at popup/components/extension_mainComponent.vue
<App> at popup/App.vue
<Root>
TypeError: Cannot read property 'profile' of undefined
at VueComponent.updateProfile (extension_useraccount.vue?../node_modules/babel-loader/lib!../node_modules/vue-loader/lib??vue-loader-options:258)
at invokeWithErrorHandling (vue.runtime.esm.js:1853)
at HTMLButtonElement.invoker (vue.runtime.esm.js:2178)
at HTMLButtonElement.original._wrapper (vue.runtime.esm.js:6901)
但是,当我console.log
配置文件数组时,我会显示所有信息。
有我的account.vue
页:
<div>
<h3>Name</h3>
<input type="text" v-model="profile.name">
</div>
<div>
<h3>username</h3>
<input type="text" v-model="profile.username">
</div>
<button @click="updateProfile">Modify</button>
<script>
import {fb,db} from '../../firebase/init'
export default {
name: "profile",data() {
return {
profile: {
name: null,username: null
}
}
},firestore(){
const user = fb.auth().currentUser;
return {
profile: db.collection('users').doc(user.uid),}
},methods:
updateProfile() {
this.$firestore.profile.update(this.profile);
}
}
}
</script>
还有我的firebaseInit.js
:
import * as firebase from "firebase/app";
import "firebase/firebase-auth";
import "firebase/firebase-firestore";
var firebaseConfig = {
apiKey: "",authDomain: "",databaseURL: "",projectId: "",storageBucket: "",messagingSenderId: "",appId: "",measurementId: ""
};
const fb = firebase.initializeApp(firebaseConfig);
const db = firebase.firestore();
export {fb,db}
如果有人可以帮助我;)