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

171
Views
Cloud Functions para Firebase: no se puede cargar la URL: no hay ningún encabezado "Access-Control-Allow-Origin" presente

Tengo una aplicación angular 2 en la que llamo a Firebase a través de una solicitud http. Sin embargo, cada vez que intento ejecutar la función, recibo este error:

 XMLHttpRequest cannot load https://us-central1-<my-projectId>.cloudfunctions.net/getUserByEmail?email=user@email.com. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access. The response had HTTP status code 500. error_handler.js:54 EXCEPTION: Response with status: 0 for URL: null ErrorHandler.handleError @ error_handler.js:54 next @ application_ref.js:348 schedulerFn @ async.js:93 SafeSubscriber.__tryOrUnsub @ Subscriber.js:234 SafeSubscriber.next @ Subscriber.js:183 Subscriber._next @ Subscriber.js:125 Subscriber.next @ Subscriber.js:89 Subject.next @ Subject.js:55 EventEmitter.emit @ async.js:79 NgZone.triggerError @ ng_zone.js:333 onHandleError @ ng_zone.js:294 ZoneDelegate.handleError @ zone.js:338 Zone.runTask @ zone.js:169 ZoneTask.invoke @ zone.js:420 Subscriber.js:238 Uncaught Response {_body: ProgressEvent, status: 0, ok: false, statusText: "", headers: Headers…}

Aquí está mi archivo Cloud Function para Firebase index.js :

 const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(functions.config().firebase); const cors = require('cors')({origin: true}); /** * Function to get a user by email */ exports.getUserByEmail = functions.https.onRequest((req, res) => { cors(request, response, () => { // This should return a promise from the getUserByEmail function response.status(200).send(admin.auth().getUserByEmail(req.query.email)) }) });

Y luego, así es como llamo a la función en un componente (suponiendo que la solicitud HTTP se realice correctamente):

 this.http.get('https://us-central1-rosebud-9b0ed.cloudfunctions.net/getUserByEmail', { search: "user@email.com" }).subscribe(data => { console.log('data', data); })

Parece que no importa lo que intente, sigo teniendo este mismo problema. Incluso intenté implementar esto en mi URL alojada en Firebase y todavía me da este error. Alguien sabe que puedo hacer aqui?

¡Gracias por adelantado!

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Así que cometí algunos errores clave aquí.

  1. Asegúrese de requerir cors antes de inicializar la aplicación Firebase.
  2. Asegúrese de que los parámetros marquen la función cors() .

Aquí está el código index.js actualizado:

 const functions = require('firebase-functions'); const admin = require('firebase-admin'); const cors = require('cors')({origin: true}); admin.initializeApp(functions.config().firebase); /** * Function to get a user by email */ exports.getUserByEmail = functions.https.onRequest((request, response) => { cors(request, response, () => { // This should return a promise from the getUserByEmail function response.status(200).send(admin.auth().getUserByEmail(req.query.email)) }) });
about 4 years ago · Santiago Trujillo 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!