FirebaseExtended / FirebaseExtended/reactfire

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

Offen
#192 8 Kommentare 2 Reaktionen 1 zugewiesene Person Beansprucht von @jhuleatt Auf GitHub ansehen
needs investigation v5
Vorherrschende Sprache
TypeScript
Sterne
3.6k
Forks
403
Ø Merge
14 Std. 53 Min.
Gemergte PRs (30 T.)
5

Beschreibung

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

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.