firebase / geofire-js

GeoFire for JavaScript - Realtime location queries with Firebase
MIT License
1.44k stars 345 forks source link

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

Open pzoli opened 1 year ago

pzoli commented 1 year ago

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

pzoli commented 1 year ago

When I add path to ref like this: this.firebaseRef = ref(getDatabase(app), '/geolocations'); I got another error:

Error: Firebase Database (${JSCORE_VERSION}) INTERNAL ASSERT FAILED: Unknown node type at C (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\geofire\dist\geofire\geofire.min.js:17:94) at v (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\geofire\dist\geofire\geofire.min.js:17:67) at dn.compareTo (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\geofire\dist\geofire\geofire.min.js:737:1775) at PriorityIndex.compare (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\@firebase\database\dist\index.esm2017.js:5065:36) at Array.sort () at buildChildSet (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\@firebase\database\dist\index.esm2017.js:5148:15) at c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\@firebase\database\dist\index.esm2017.js:5312:28 at map (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\@firebase\util\dist\index.esm2017.js:1164:27) at IndexMap.addToIndexes (c:\work\integrity\projects-node\GeoMonitoringApp\node_modules\@firebase\database\dist\index.esm2017.js:5295:31) at ChildrenNode.updateImmediateChild (c:\work\integrity\projects-node\GeoMonitoringApp.vscode.react\index.bundle:104798:42) {stack: 'Error: Firebase Database (${JSCORE_VERSION}) …ingApp.vscode.react\index.bundle:104798:42)', message: 'Firebase Database (${JSCORE_VERSION}) INTERNAL ASSERT FAILED: Unknown node type'}

pzoli commented 1 year ago

If I add indexon to firebase, I get "childPathObj.split is not a function" again.

"geolocations": { ".indexOn": "g" }

jacobbinnie commented 1 year ago

This is still an issue on version 6.0.0. Any updates?