firebase / firebase/geofire-js
't.split' error and 'Unknown node type' at firebase
- Dominant language
- TypeScript
- Stars
- 1.4k
- Forks
- 339
- PR merge metrics
- No merged PRs in 30d
Description
### Version info
**Firebase:**
9.17.1
**GeoFire:**
6.0.0
**Other (e.g. Node, browser, operating system) (if applicable):**
typescript: 4.8.3
react-native: 0.70.6
node: 18.14.0
### Test case
public geoQuerty(geoQueryCallback: (key: string, location: any, distance: number) => void) {
let geofire: GeoFire = new GeoFire(this.firebaseRef);
let geoQuery: GeoQuery = geofire.query({
center: [19.1483513, 47.4528837],
radius: 1.5
});
geoQuery.on('key_entered', geoQueryCallback);
geoQuery.on('key_exited', geoQueryCallback);
geoQuery.on('key_moved', geoQueryCallback);
geofire.set('key1', [19.1583513, 47.4528837]).then(function () {
console.log("Provided key has been added to GeoFire");
}, function (error) {
console.log("Error: " + error);
});;
}
}
### Steps to reproduce
VSCode launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug Android",
"request": "launch",
"type": "reactnative",
"cwd": "${workspaceFolder}",
"platform": "android"
},
]
}
1. Run application in debug mode
2. call geofire.set and geoQuery.on methods
### Expected behavior
no Exception when I get event
### Actual behavior
In debug console logged errors:
TypeError: childPathObj.split is not a function
at pathChild (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\@firebase\database\dist\index.esm2017.js:2961:42)
at ImmutableTree.findRootMostMatchingPathAndValue (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\@firebase\database\dist\index.esm2017.js:7628:42)
at ImmutableTree.findRootMostValueAndPath (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\@firebase\database\dist\index.esm2017.js:7646:21)
at compoundWriteGetCompleteNode (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\@firebase\database\dist\index.esm2017.js:7956:47)
at compoundWriteChildCompoundWrite (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\@firebase\database\dist\index.esm2017.js:7997:31)
at c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\@firebase\database\dist\index.esm2017.js:8336:45
at c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\@firebase\database\dist\index.esm2017.js:5596:24
at LLRBNode.inorderTraversal (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\@firebase\database\dist\index.esm2017.js:4285:15)
at SortedMap.inorderTraversal (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\@firebase\database\dist\index.esm2017.js:4703:27)
at ChildrenNode.forEachChild (c:\work\integrity\projects-node\GeoMonitoringApp\.vscode\.react\index.bundle:104934:22) {stack: 'TypeError: childPathObj.split is not a functi…ingApp\.vscode\.react\index.bundle:104934:22)', message: 'childPathObj.split is not a function'}
TypeError: t.split is not a function
at qt (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\geofire\dist\geofire\geofire.min.js:590:1134)
at Ei (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\geofire\dist\geofire\geofire.min.js:1155:2690)
at Di (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\geofire\dist\geofire\geofire.min.js:1219:1175)
at c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\geofire\dist\geofire\geofire.min.js:1219:748
at Ri (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\geofire\dist\geofire\geofire.min.js:1219:765)
at Bi (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\geofire\dist\geofire\geofire.min.js:1219:5575)
at zi (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\geofire\dist\geofire\geofire.min.js:1235:206)
at wr (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\geofire\dist\geofire\geofire.min.js:1267:2429)
at c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\geofire\dist\geofire\geofire.min.js:1267:1449
at onComplete (c:\work\integrity\projects-node\GeoMonitoringApp\.vscode\.react\index.bundle:118488:12) {stack: 'TypeError: t.split is not a function
at q…ingApp\.vscode\.react\index.bundle:118488:12)', message: 't.split is not a function'}
Contributor guide
Research direction
Reproduce the reported calls with TypeScript 4.8.3, React Native 0.70.6, Node 18.14.0, Firebase 9.17.1, and GeoFire 6.0.0. Start with the stack traces in @firebase/database/dist/index.esm2017.js and geofire/dist/geofire/geofire.min.js, then determine why the event path is not a string. Done means geofire.set and geoQuery.on run without the reported exceptions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- node.js, react-native, typescript
- Domain
- databases, mobile-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100