firebase / firebase/geofire-js

't.split' error and 'Unknown node type' at firebase

Open
#260 5 comments 1 reaction 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.