FirebaseExtended / FirebaseExtended/reactfire

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

Ouverte
#192 8 commentaires 2 réactions 1 personne assignée Réclamée par @jhuleatt Voir sur GitHub
needs investigation v5
Langage dominant
TypeScript
Étoiles
3.6k
Forks
403
Merge moyen
14 h 53 min
PR mergées (30 j)
5

Description

### 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'

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.