Permission error when accessing a cached firestore collection after logout/login
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- firebase, react, typescript
- Área
- authentication, databases
Línea de trabajo
Reproduce la secuencia de sign-out/sign-in con useFirestoreCollectionData y la misma colección; después, inspecciona cómo la caché global de colecciones gestiona los cambios de autenticación. Compara la lectura almacenada en caché con la solución alternativa de cambiar idField después de iniciar sesión. Se considera terminado cuando se pueda leer la misma colección después de volver a autenticarse sin un error de permisos, idealmente con una prueba de regresión o una reproducción documentada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Version info
React: 17.0.2
Firebase: 9.4.0
ReactFire: 4.2.0
Other (e.g. Node, browser, operating system) (if applicable): Chrome, Windows 10
Test case
Test cases seem challenging to produce since a firebase instance is involved.
Steps to reproduce
- Sign In (I used
GoogleAuthProvider), or be already signed-in. - Read from a collection.
- Sign Out
- Sign In
- Read from the same collection.
Expected behavior
The same data is read.
Actual behavior
Uncaught FirebaseError: Missing or insufficient permissions. is thrown.
This seems to be caused by the global cache of collections. The problem can be mitigated by:
- Refreshing the page after sign out
- Changing the
idFieldpassed touseFirestoreCollectionData. Any easy way to test this is to useid-${auth.stsTokenManager.expirationTime}as youridField, sinceexpirationTimechanges on every Sign Out/In cycle.
Note that waiting more than 30 seconds does not fix the problem. So, the cache resetting of the collection is insufficient to resolve the issue. I suspect that the collection is associated with the stale auth token which has been disabled due to logout.
A possible resolution might be to purge the cache on sign out.
- Lenguaje dominante
- TypeScript
- Estrellas
- 3.6k
- Forks
- 403
- Merge medio
- 5 d 1 h
- PR fusionados (30 d)
- 10
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de FirebaseExtended/reactfire
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 38/100
FirebaseExtended/reactfire#801 ·
-
v5
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
FirebaseExtended/reactfire#793 ·
-
v5
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
FirebaseExtended/reactfire#790 · 2 comentarios ·
-
v5
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
FirebaseExtended/reactfire#789 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
FirebaseExtended/reactfire#788 ·
Todos los issues de FirebaseExtended/reactfire
Issues similares
-
bug(cli): hapi doctor inline-media prints a fabricated B:\ helper-script path in packaged installs Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Crush Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
catppuccin/catppuccin#3125 ·
-
Add a SECURITY.md Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
ElementsProject/cln-application#167 · 1 comentario · 1 reacción ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Quantco/pnpm-licenses#17 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100