FirebaseExtended / FirebaseExtended/reactfire

Infinite request loop in useFirestoreCollection

Abierto
#374 2 comentarios 0 reacciones 0 asignados Ver en GitHub
v5
Lenguaje dominante
TypeScript
Estrellas
3.6k
Forks
403
Merge medio
14 h 53 min
PR fusionados (30 d)
5

Descripción

Hello,

the following code results in an infinite loop when user isn't authenticated aka `user.data` is `undefined`. Is this expected?

```
const user = useUser(undefined, { suspense: true });
const subscriptions = useFirestoreCollection(
firestore
.collection('customers')
.doc(user.data?.uid)
.collection('subscriptions')
```

When something random and non-existent is passed to `doc(myId)`, it throws `Missing or insufficient permissions`, when `null` is passed it throws `Function CollectionReference.doc() cannot be called with an empty path`, however when `undefined` is passed the code goes into an infinite loop and triggers hundreds of requests per second.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Reproduce el problema con el snippet mostrado de useUser y useFirestoreCollection, y luego rastrea cómo useFirestoreCollection gestiona una ruta de documento undefined. Compara su comportamiento con null y con un id inexistente; se considera terminado cuando el caso undefined ya no provoca solicitudes repetidas y tiene un resultado definido.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
firebase, react, typescript
Área
databases, frontend
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.