FirebaseExtended / FirebaseExtended/reactfire

useFirestoreDocData & useFirestoreDoc won't throw a promise on permission denied

Abierto
#192 8 comentarios 2 reacciones 1 asignado Reclamado por @jhuleatt Ver en GitHub
needs investigation v5
Lenguaje dominante
TypeScript
Estrellas
3.6k
Forks
403
Merge medio
14 h 53 min
PR fusionados (30 d)
5

Descripción

### Version info

**React:** 16.12.0

**Firebase:** 7.5.2

**ReactFire:** 2.0.0-canary.1fce6b9

### Test case

I want to use role based authentication on documents, so when a document is successfully read in the app and then I change the access of that user, the listener throws an error instead of a Promise.

```ts
const CompanyCheck: React.FC = ({ children }) => {
const { companyId, setCompany } = useCompanyContext();

const firestore: Firebase['Firestore'] = useFirestore();

const companyRef = useRef(
firestore()
.collection('companies')
.doc(companyId)
);

useEffect(() => {
companyRef.current = firestore()
.collection('companies')
.doc(companyId);
}, [companyId, firestore]);

// This won't throw a promise on permission changes after successfull read.
const companyDoc = useFirestoreDocData(companyRef.current);

useEffect(() => {
setCompany(companyDoc);
}, [companyDoc, setCompany]);

return <>{children};
};
```

### Steps to reproduce

Use a correct example of read operation with role access, then once the data is displayed remove the access to the document and error boundary won't catch any error.

### Expected behavior

Throw a promise like when initial read fails so ErrorBoundary can catch the error.

### Actual behavior

Don't throw a Promise and error can't be handled. Error message is: 'permission-denied'

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.