javascript - TypeError al usar GeoFire con Firebase 9.17.1: "t.split no es una función"
Me gustaría hacer una pregunta sobre Firebase y Geofire. Estoy usando Firebase versión 9.17.1 con Geofire versión 6.0.0. Basándome en la documentación, he escrito el código básico, pero estoy recibiendo el siguiente mensaje de error:
[TypeError: t.split no es una función. (En 't.split("/")', 't.split' no está definido)]
. Aunque la consulta está funcionando y las funciones .on se están ejecutando, todavía estoy recibiendo este mensaje de error. A continuación se muestra el código que estoy usando:
class DatabaseHelper {
private database;
private firebaseRef: DatabaseReference;
private app;
constructor(){
this.database = firebase.app().database('censored');
this.app = initializeApp({
apiKey: 'censored',
appId: 'censored',
databaseURL: 'censored',
storageBucket: 'censored'
});
this.firebaseRef = ref(getDatabase(this.app));
}
public async addDataToGeofire(){
const geoFire = await new GeoFire(this.firebaseRef);
const requestId = "-NP4heZ1yLXk96HiScqH";
const latitude = 45.502686;
const longitude = 15.0655181;
await geoFire.set(requestId, [latitude, longitude])
.then(() => {
console.log(`Coordinates successfully added to the key: ${requestId}`);
})
.catch((error) => {
console.error(`An error occurred while adding the coordinate" ${error}`);
});
}
public async getDataFromGeofire(){
const geoFire = await new GeoFire(this.firebaseRef);
await geoFire.get("-NP4heZ1yLXk96HiScqH").then(function(location) {
if (location === null) {
console.log("Provided key is not in GeoFire");
}
else {
console.log("Provided key has a location of " + location);
}
}, function(error) {
console.log("Error: " + error);
});
const geoQuery = geoFire.query({
center: [47, 19],
radius: 1000
});
const onReadyRegistration = geoQuery.on("ready", () => {
console.log("GeoQuery has loaded and fired all other events for initial data");
});
// geoQuery.cancel(); <--if I call this function I don't get an error, but I don't think this is the solution.
}
}
App.tsx:
constructor(){
this.someMethod();
}
async someMethod(){
await databaseHelper.addDataToGeofire().then(async () => {await databaseHelper.getDataFromGeofire()});
}
El error es causado por la función geoFire.query(), porque si la comento, no recibo un mensaje de error. El resto del código funciona correctamente. Si llamo a la función geoQuery.cancel(), los datos se descargan y no se produce ningún error. Sin embargo, no quiero cancelarla porque necesito que las funciones on continúen escuchando.
Gracias de antemano