Closed SamJbori closed 7 months ago
🤔 hmm - my guess is you are missing an index:
https://firebase.google.com/docs/firestore/query-data/queries#compound_and_queries
Do you see any errors in the logs about missing indices?
Hello 👋, to help manage issues we automatically close stale issues.
This issue has been automatically marked as stale because it has not had activity for quite some time.Has this issue been fixed, or does it still require attention?
This issue will be closed in 15 days if no further activity occurs.
Thank you for your contributions.
🤔 hmm - my guess is you are missing an index:
https://firebase.google.com/docs/firestore/query-data/queries#compound_and_queries
Do you see any errors in the logs about missing indices?
Sorry for the late response,
the answer to your question is no
Hello 👋, to help manage issues we automatically close stale issues.
This issue has been automatically marked as stale because it has not had activity for quite some time.Has this issue been fixed, or does it still require attention?
This issue will be closed in 15 days if no further activity occurs.
Thank you for your contributions.
Why is this stale? He isn't missing an index according to him and the snapshot is still providing its callback with an undefined value.
I am experiencing this too - sometimes for unclear reasons the snapshot is undefined and thus its not enough to check snapshot.empty or .exists (as this will result in an error).
We started checking if the snapshot is defined as part of all our callback structures - but in what situations does onSnapshot return undefined @mikehardy ? Thanks!
Hey @yuvalhermelin-fijoya - the stale bot is not really mysterious, it is marked stale because there has not been any activity - as an open source repository it is possible for anyone to investigate problems by instrumenting the code, trying fixes, and posting a PR, but no one has done so yet
I'm not sure the answer to your question, and I'm not sure if what you're experiencing is the same or not - the reproduction scenario the original user posted appears to reproduce the problem all the time. You indicate you only have this happen some of the time so you may have a different issue.
This appears to be the code in question:
When you reproduce the problem after instrumenting the code with some console.log statements indicating where control flow is and what the variable states are, what do you see?
This happen to me too, it was direct document onSnapshot:
collectionName()
.doc('docA')
.onSnapshot(snap => {})
What happen here is I got the data at first then the function got trigger again and I got undefined !
Also I deleted the document docA
and was still getting the old data then undefined ! ( and the document doesn't exist in firebase ), and to make sure I tried to get the data using doc
normal function and it says doesn't exist.
Note it took sometimes ( I think over 30m ) so that onSnapshot got that document doesn't exist !
So do we have some kind of cache in the package ? maybe its related ?
I haven't made any debug as I was hurry but will do later for sure !
Issue
When I try to do compound
where
with anything other than"=="
, I get an undefinedquerySnapshot
, see below code exampleFailed Scenario
Project Files
Javascript
Click To Expand
#### `package.json`: ```json { "name": "XXX", "version": "1.0.0", "main": "node_modules/expo/AppEntry.js", "scripts": { "start": "expo start", "android": "expo run:android", "ios": "expo run:ios", "web": "expo start --web", "dev": "expo start --dev-client" }, "dependencies": { "@react-native-community/hooks": "^3.0.0", "@react-native-firebase/app": "^18.6.1", "@react-native-firebase/auth": "^18.6.1", "@react-native-firebase/crashlytics": "^18.6.1", "@react-native-firebase/firestore": "^18.6.1", "@react-native-firebase/messaging": "^18.6.1", "@react-native-firebase/perf": "^18.6.1", "@react-native-firebase/storage": "^18.6.1", "@react-native-picker/picker": "2.4.10", "@react-navigation/bottom-tabs": "^6.5.11", "@react-navigation/drawer": "^6.6.6", "@react-navigation/material-top-tabs": "^6.6.5", "@react-navigation/native": "^6.1.9", "@react-navigation/native-stack": "^6.9.17", "@react-navigation/stack": "^6.3.20", "@shopify/flash-list": "1.4.3", "@stripe/stripe-react-native": "^0.35.0", "axios": "^1.6.2", "expo": "~49.0.15", "expo-barcode-scanner": "~12.5.3", "expo-image": "~1.3.5", "expo-image-manipulator": "~11.3.0", "expo-image-picker": "~14.3.2", "expo-module-scripts": "^3.1.0", "expo-splash-screen": "~0.20.5", "expo-status-bar": "~1.6.0", "i18next": "^23.7.6", "jotai": "^2.5.1", "lodash": "^4.17.21", "react": "18.2.0", "react-i18next": "^13.5.0", "react-native": "0.72.6", "react-native-element-dropdown-wj": "^2.10.1-a", "react-native-gesture-handler": "~2.12.0", "react-native-localize": "^3.0.3", "react-native-pager-view": "6.2.0", "react-native-paper": "^5.11.1", "react-native-reanimated": "~3.3.0", "react-native-safe-area-context": "4.6.3", "react-native-screens": "~3.22.0", "react-native-svg": "13.9.0", "react-native-tab-view": "^3.5.2" }, "devDependencies": { "@babel/core": "^7.20.0", "@react-native-community/geolocation": "^3.1.0", "@types/lodash": "^4.14.202", "@types/node": "^20.9.4", "@types/react": "~18.2.14", "eslint-plugin-prettier": "^5.0.1", "prettier": "3.1.0", "react-native-vector-icons": "^10.0.3", "typescript": "^5.1.3" }, "private": true } ``` #### `firebase.json` for react-native-firebase v6: ```json { "react-native": { "android_task_executor_maximum_pool_size": 10, "android_task_executor_keep_alive_seconds": 3 } } ```
iOS
Click To Expand
#### `ios/Podfile`: - [ ] I'm not using Pods - [x] I'm using Pods and my Podfile looks like: ```ruby # N/A ``` #### `AppDelegate.m`: ```objc // N/A ```
Android
Click To Expand
#### Have you converted to AndroidX? - [ ] my application is an AndroidX application? - [ ] I am using `android/gradle.settings` `jetifier=true` for Android compatibility? - [ ] I am using the NPM package `jetifier` for react-native compatibility? #### `android/build.gradle`: ```groovy // N/A ``` #### `android/app/build.gradle`: ```groovy // N/A ``` #### `android/settings.gradle`: ```groovy // N/A ``` #### `MainApplication.java`: ```java // N/A ``` #### `AndroidManifest.xml`: ```xml ```
Environment
Click To Expand
**`react-native info` output:** ``` System: OS: Linux 6.2 Ubuntu 22.04.3 LTS 22.04.3 LTS (Jammy Jellyfish) CPU: (12) x64 13th Gen Intel(R) Core(TM) i9-13900K Memory: 8.52 GB / 15.58 GB Shell: version: 5.1.16 path: /bin/bash Binaries: Node: version: 18.19.0 path: ~/.nvm/versions/node/v18.19.0/bin/node Yarn: version: 1.22.19 path: ~/.nvm/versions/node/v18.19.0/bin/yarn npm: version: 10.2.3 path: ~/.nvm/versions/node/v18.19.0/bin/npm Watchman: Not Found SDKs: Android SDK: API Levels: - "33" - "34" Build Tools: - 30.0.3 - 33.0.0 - 34.0.0 System Images: - android-34 | Google APIs Intel x86_64 Atom Android NDK: Not Found IDEs: Android Studio: Not Found Languages: Java: version: 18.0.2-ea path: /usr/bin/javac Ruby: Not Found npmPackages: "@react-native-community/cli": Not Found react: installed: 18.2.0 wanted: 18.2.0 react-native: installed: 0.72.6 wanted: 0.72.6 npmGlobalPackages: "*react-native*": Not Found Android: hermesEnabled: true newArchEnabled: false iOS: hermesEnabled: Not found newArchEnabled: Not found``` - **Platform that you're experiencing the issue on**: - [ ] iOS - [ ] Android - [ ] **iOS** but have not tested behavior on Android - [X] **Android** but have not tested behavior on iOS - [ ] Both - **`react-native-firebase` version you're using that has this issue:** - `18.6.1` - **`Firebase` module(s) you're using that has the issue:** - `e.g. Instance ID` - **Are you using `TypeScript`?** - `Y` & `5.2.2`
React Native Firebase
andInvertase
on Twitter for updates on the library.