Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

157
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda