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

155
Views
Establecer una ubicación en una función Https Callable en Firebase 9 (portal de clientes de stripe)

Estoy tratando de configurar un botón para que el usuario administre su suscripción con Stripe Customer Portal y su integración de Firebase.

Problema, la documentación es válida para la versión anterior de Firebase (8) y estoy usando la nueva, Firebase 9.

Estamos del lado del cliente y esto es React.js.

Este es su código js para llamar a la función (puede ver el código completo aquí: https://github.com/stripe-samples/firebase-subscription-payments/blob/master/public/javascript/app.js ):

 const functionLocation = 'us-east1'; const functionRef = firebase .app() .functions(functionLocation) .httpsCallable('ext-firestore-stripe-subscriptions-createPortalLink'); const { data } = await functionRef({ returnUrl: window.location.origin }); window.location.assign(data.url); });

Con Firebase 9 debería ser algo como esto:

 const functions = getFunctions(firebaseApp) export async function goToBillingPortal() { const functionRef = httpsCallable(functions, 'ext-firestore-stripe-subscriptions-createPortalLink'); const { data } = await functionRef({ returnUrl: window.location.origin }); window.location.assign(data.url); }

La consola muestra 3 errores:

 Access to fetch at 'https://us-central1-xxxxxxxxd76.cloudfunctions.net/ext-firestore-stripe-subscriptions-createPortalLink' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request. service.ts:206 POST https://us-central1-xxxxxxx76.cloudfunctions.net/ext-firestore-stripe-subscriptions-createPortalLink net::ERR_FAILED Uncaught (in promise) FirebaseError: internal

Aparentemente, el problema es que necesito especificar la ubicación del servidor (por ejemplo, us-central1) pero no puedo entender cómo hacerlo con Firebase 9. Todas las guías son para Firebase 8.

He probado diferentes cosas como:

 const functions = getFunctions(firebaseApp).location("us-central1")

o

 const functionRef = httpsCallable(functions, 'ext-firestore-stripe-subscriptions-createPortalLink').location("us-central1")

pero no funciona

¿Ideas?

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

0

Como se muestra aquí en el documento, debe pasar la región como el segundo parámetro del método getFunctions() :

 const functions = getFunctions(firebaseApp, "europe-west1");
about 4 years ago · Juan Pablo Isaza Report

0

También se puede definir dónde implementar con .region() , que creo que incluso acepta una lista:

 const CLOUD_FUNCTIONS_REGION = "us-east1"; exports.billing_portal = functions.region( CLOUD_FUNCTIONS_REGION ).https.onCall( async (data, context: CallableContext) => { } );
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!