Comments (2)
I tried to use the library for the first time today and hit upon this issue. I think the cause is due to the call to queryEqual here:
Line 16 in 3cb4468
In my case, I am minting new converter objects on each render, which breaks the equality check, with something like:
Firestore.collection(firestore, prefix, 'doc').withConverter(
docConverter<Doc>()
),
If I instead save off the converter to a top-level constant, which means the equality check can presumably rely on identity for the converter part, I can see the collection promise gets fulfilled and my app renders correctly.
It's something like this saved off outside of the component lifecycle, in my case at the top level of a module:
const docConverter = docConverter<Doc>()
Then during a render, it's reusing the object:
Firestore.collection(firestore, prefix, 'doc').withConverter(
docConverter
),
I think this is not a reactfire bug, but I think a common use-case that should be documented as I wasted hours on it and I imagine others would, too.
from reactfire.
Another approach to consider is to allow users to pass in a query key override, like react-query (the lib I was coming from), if it's too difficult to track whether equality will work out from reading subtle code changes.
from reactfire.
Related Issues (20)
- High CPU usage with constant GC with `useInitFirestore` HOT 1
- How to set new doc in firestore HOT 3
- How implement appcheck in reactfire v3? HOT 2
- useSigninCheckResult.signedIn always false for email on iOS app but true on web HOT 1
- Typo in official Firebase Documentation HOT 1
- Failed to import FirebaseAppProvider for reactfire@^4.2.2
- 403 on storage request HOT 2
- StackBlitz live demo not working (locally too)
- v4.2.3 is not published on npm HOT 6
- how to trigger parent re-render when using `remove` in realtime database? HOT 2
- Random permission errors when logging in with multiple tabs open
- Type of `ObservableStatus::data` should include `undefined` HOT 1
- Disable Analytics HOT 1
- useUser() returns undefined unexpectedly on initial render HOT 5
- Support for Firebase 10.1.0 HOT 7
- Possible support for Firebase 10.5.0? HOT 2
- useFirestoreDocData returns status: "success" for wrong document (same as issue #327) HOT 1
- Question! Are multiple subscriptions opened in this case? HOT 1
- Multiple function calls when using custom hook useCallableFunctionResponse HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from reactfire.