Firebase пытается вернуть onAuthStateChanged - PullRequest
0 голосов
/ 22 мая 2019

Попытка реализовать аутентификацию Firebase, вход в систему, вход, выход из системы работают, поэтому пытаемся вернуться, если пользователь вошел в систему или нет.

Идентификатор пользователя из моего магазина возвращается как неопределенный / не обновляется при попытке отобразить его.

При проверке в vue dev tools, userId никогда не меняется.

Это не логирование как ошибка в моей консоли просто как неопределенная. в одну строку с серым цветом текста

    <template>
       <div>
            <button @click="log"></button>
      </div>
    </template>

    <script>
    import firebase from 'firebase'
    import { mapState } from 'vuex'

    export default {
        name: 'Navigation',
        data () {
            return {
            }
        },
        computed: {
            ...mapState({
                userId: state => state.userId
            })
        },
        methods: {
            loggedOut() {
                this.$store.dispatch('logout')
            },
            log() {
                console.log(this.$store.userId)
            }
        }
    }
    </script>
     ^this is my vue file
import Vue from 'vue'
import Vuex from 'vuex'
import db from '../firebase'
import router from '../router';
// import firebase from '../firebase'
import firebase from 'firebase'
//https://github.com/robinvdvleuten/vuex-persistedstate
Vue.use(Vuex)
import createPersistedState from "vuex-persistedstate"

export const store = new Vuex.Store({
  plugins: [createPersistedState()],
  state: {
    userId: '' 
  },
  mutations: {
    LOGOUT(state, userId) {
      state.userId = '';
    },
    SET_USER_ID(state, userId) {
      state.userId = userId;
    }
  },
  actions: {
    checkUserStatus({ commit, state }) {
      return new Promise((resolve, reject) => {
        firebase.auth().onAuthStateChanged((user) => {
          if (user) {
            commit('SET_USER_ID', user.uid);
            resolve(user.uid);
          } else {
            reject('User is not logged in.');
          }
        })
      })
    },
    signIn(context, credentials) {
      firebase.auth().createUserWithEmailAndPassword(credentials.username, credentials.password)
      .then(data => {
        router.push('/')
        alert('Signed in!')
      })
      .catch(e => {
        alert(e.message)
      })
    },
    login(context, credentials) {
      firebase.auth().signInWithEmailAndPassword(credentials.username, credentials.password)
      .then(data => {
        router.push('/')
        alert('Logged inn')
      })
      .catch(e => {
        console.log(e, ' Loggin failed')
        alert(e.message)
      })
    },
    logout(context) {
      firebase.auth().signOut()
      .then(data => {
        router.push('/Login')
        alert('logged out')
      })
      .catch(e => {
        alert(e.message)
      })
    },
    ...
  }
})

export default store
...