Intento usar firebase firestore en mis últimas aplicaciones web vue3.js. He usado vuex4 como gestión de estado en mis aplicaciones. Mis aplicaciones también usan la autenticación de base de fuego para iniciar sesión, cerrar sesión y crear nuevos usuarios.
Mis aplicaciones usan la función snapShot después de iniciar sesión, pero ocurrió un error como el siguiente.
Uncaught Error in snapshot listener: FirebaseError: Missing or insufficient permissions. Pero he hecho que el código se dé de baja en la función onSnapshot después del evento de cierre de sesión. Mi código es como a continuación:
tienda/index.js
const store = createStore({ state: { unsubscribe: null, }, actions: { startListner(context) { context.state.unsubscribe = onSnapshot( //something result get proccess ) }, stopPostsListner(context) { context.state.unsubscribe(); }, } }) Hice la función onSnapshot como métodos de acciones vuex. Y luego use estas funciones en index.vue.
index.vue
<script setup> import { useStore } from "vuex"; import { onMounted, onUnmounted } from "vue"; const store = useStore(); onMounted(() => { store.dispatch("startPostsListner"); }); onUnmounted(() => { store.dispatch("stopPostsListner"); }); </script> Pensé en cancelar la suscripción de la función onSnapshot después de destruir el componente, pero siguen ocurriendo errores.
¿Cómo se usa correctamente onSnapshot en vuex4?
Publicar mi comentario como respuesta para una mejor visibilidad.
De las reglas de seguridad cambiando:
allow read, write: if de false; a true; ayudará a corregir el error.