FirebaseExtended / FirebaseExtended/reactfire
Infinite request loop in useFirestoreCollection
- 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
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