Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // данные метода находятся в auth.js
- // этот метод обращается к базе и забирает объект, находится в actions
- async getUserDataBase({ dispatch }) {
- let userId = await dispatch("getUid"); // этот метод просто возвращает текущий юзерАйДи
- // ключ есть
- console.log(userId);
- const dbRef = ref(getDatabase());
- let data = await get(child(dbRef, `users/${userId}/info`))
- .then((snapshot) => {
- if (snapshot.exists()) {
- // console.log(snapshot.val());
- return snapshot.val();
- // commit("setUserData", snapshot.val()); - не припомню, чтобы это записывало данные
- } else {
- console.log("No data available");
- }
- })
- .catch((error) => {
- console.error(error);
- });
- return data;
- },
- // данный метод тоже находится в actions
- // он авторизует юзера, вызывает метод получения данных юзера с БД
- // а потом вызывает мьютейш, который должен записывать данные в объект.
- async login(context, { email, password }) {
- await firebase.auth().signInWithEmailAndPassword(email, password);
- const userData = await context.dispatch("getUserDataBase");
- console.log(userData);
- context.commit("setUserData", userData);
- },
- // вот непосредственно мьютейшнс
- mutations: {
- setUserData(state, userData) {
- // state.userData = Object.assign({}, userData); это закомменчено, т.к. не получается занести данные
- localStorage.removeItem("userData");
- localStorage.setItem("userData", JSON.stringify(userData)); //
- },
- },
- // данные методы находятся в index.js импорт сделан через
- import auth from "./auth";
- // в модули добавил вот так
- modules: {auth},
- // тут сам стейт
- state: {
- userData: {},
- },
- // а здесь геттер
- getters: {
- userData: (state) => state.userData,
- },
- // этот мьютейншн забирает данные из локал стоража и записывает в state.userData
- GET_ACCS_FROM_LOCAL_STORAGE(state) {
- state.userData = JSON.parse(localStorage.getItem("userData"));
- },
- // вот это в основном App.vue
- created() {
- store.commit("GET_ACCS_FROM_LOCAL_STORAGE");
- },
- // это в том компоненте, который я хочу использовать для вывода данных
- computed: {
- ...mapGetters(["userData"]),
- },
- <span ref="username" class="d-none d-sm-inline mx-1">
- {{ userData.name }}
- </span>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement