Профиль пользователя не будет отображаться и не может быть обновлен: Firebase и VueJS - PullRequest
0 голосов
/ 06 ноября 2019

Я создаю приложение, и в этом приложении у меня есть страница профиля. На этой странице профиля я хочу показать информацию о текущем пользователе, такую ​​как имя, имя пользователя, ... Я создал функцию 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}

Если бы кто-то мог мне помочь;)

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