Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

178
Views
importar geofire-common con firestore para el código del navegador

Estoy un poco confundido tratando de usar geofire-common en el código del navegador.

Al principio, hice un intento exitoso con NodeJS que usa geofire-common que se hace referenciaaquí en la documentación de Google y cuyo código se ve así:

 import { createRequire } from 'module'; // <------ trick to get a require function const require = createRequire(import.meta.url); const { initializeApp, cert } = require('firebase-admin/app'); const { getFirestore } = require('firebase-admin/firestore'); const serviceAccount = require('./serviceAccountKey.json'); initializeApp({ credential: cert(serviceAccount), }); const db = getFirestore(); const geofire = require('geofire-common'); //<---------- geofire-common

Entonces, quería hacer que esto funcionara desde el lado del navegador... y me topé con este ejemplo . En este ejemplo, puedo ver una función 'requerir', así que supongo que tiene algo que ver con el módulo commonJS de la vieja escuela:

 const geofire = require('geofire-common');

Require no es parte de la API de JavaScript estándar y debe ser específico de NodeJS (lo cual es un poco extraño porque pensé que el ejemplo era el código del navegador), así que intenté usar una importación de ES6.

 import {geofire} from 'geofire-common';

... sin éxito :

 The requested module '/node_modules/.vite/geofire-common.js?v=738ba8db' does not provide an export named 'geofire'

Si algunos de los expertos en JS estuvieran dispuestos a arrojar algo de luz sobre esos 2 paquetes y ayudarme a importar geofire correctamente si es posible, sería muy apreciado.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

creo que puedes usar

 import * as geofire from 'geofire-common';
about 4 years ago · Juan Pablo Isaza Report

0

Esa es una pregunta muy interesante, una vez que me metí en ella, fue un poco confuso, ya que las importaciones utilizadas en JavaScript han cambiado, y hay algunas diferencias según el caso de uso.

Primero, necesitamos saber de dónde viene este módulo Geofire; mencionó la documentación y el ejemplo donde podemos ver que usan la línea de comando para instalar esta biblioteca:

 // Install from NPM. If you prefer to use a static .js file visit // https://github.com/firebase/geofire-js/releases and download // geofire-common.min.js from the latest version npm install --save geofire-common

Como puede ver, están usando NPM, lo que nos indica que se trata de una biblioteca de nodejs . Esto es importante porque estaba confundido sobre el origen y si era un módulo commonjs, que parece ser. Esto también significa que debe llamarse usando require , una función y también esta causa no funciona cuando se usa import , que solo se puede usar para el estilo de módulos ES, como se cita en la documentación del nodo :

require

El módulo CommonJS require siempre trata los archivos a los que hace referencia como CommonJS.

No se admite el uso de require para cargar un módulo ES porque los módulos ES tienen una ejecución asíncrona. En su lugar, use import() para cargar un módulo ES desde un módulo CommonJS.

Luego preguntó cómo ejecutar este código en el lado del navegador, lo que creo que se puede hacer usando la referencia HTML o descargando el archivo js como se sugiere en el repositorio de github .

Alternativamente, puede incluir GeoFire en su HTML. Para hacerlo, descargue una versión minificada o no minificada de GeoFire desde la página de lanzamientos de este repositorio de GitHub . Luego, impleméntalo en Hosting en tu proyecto de Firebase.

 <!-- Firebase --> <script src="https://www.gstatic.com/firebasejs/8.0.1/firebase-app.js"></script> <script src="https://www.gstatic.com/firebasejs/8.0.1/firebase-database.js"></script> <!-- GeoFire (TODO: substitute in your own project id)--> <script src="https://my-firebase-project.web.app/geofire-5.0.1.min.js"></script>

También me referiría a la referencia de API para obtener más orientación, puedo ver algunas diferencias sobre cómo usar la biblioteca entre la página de firebase y la referencia de API.

Finalmente, en la página de npm podemos ver geofire como dependiente de geofire-common , y ambos tienen el mismo repositorio de github, así que supongo que tiene algo más que ver con el nombre. Yo diría que ambos son básicamente lo mismo.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!