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

172
Visualizações
¿Cómo verificar si la extensión Firebase Stripe ha terminado de crear el documento de cliente/usuario?

Estoy usando la extensión Firebase Stripe .

Cuando se agrega un usuario a Firebase, la extensión Stripe usa Cloud Functions para crear un documento de users en Firestore Datastore.

En mi aplicación, tengo una función que crea un usuario de Firebase y luego intenta actualizar el documento Firestore de los users correspondientes.

Pero a veces Cloud Functions no ha terminado de crear el documento de users y devuelve este error:

 No document to update: projects/APP_NAME/databases/(default)/documents/users/KHaY21FSUasdfOXFS123Kfge85VA3

Para solucionar este problema, estoy usando un tiempo de timeout que se detiene durante unos segundos antes de continuar. No es una solución ideal.

En cambio, quiero saber si la extensión Firebase Stripe ha terminado de crear el documento de los users antes de continuar.

¿Cómo se puede hacer eso?

Aquí está la función de mi aplicación:

 export const useCreateUserWithEmailAndPasswordTask = () => { const updateDocTask = useUpdateDocTask(); return useTask(function* ( signal, email: string, password: string, firstName: string, lastName: string, ) { // Create the user in Firebase // The Firebase Stripe extension will now use Cloud Functions to also create a 'users' doc with related user info const userCredential: UserCredential = yield createUserWithEmailAndPassword( auth, email, password ); // Now I wait 3 seconds to make sure the 'users' doc is created before updating it. // Without this timeout it will occasionally throw an error because updateDocTask is called before the 'users' doc is created // Is there a better way of doing this? yield timeout(3000); const updateDoc: void = yield updateDocTask.perform( 'users', userCredential.user.uid, { firstName: firstName, lastName: lastName, createdAt: timestamp, } ); return Promise.all([userCredential, updateDoc]); }); };
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede usar oyentes en tiempo real en lugar de setTimeout() como se muestra a continuación:

 import { doc, onSnapshot } from "firebase/firestore"; const unsub = onSnapshot(doc(db, "users", "<USER_DOC_ID>"), (doc) => { // This function triggers whenever the document is created/updated/deleted console.log("Data: ", doc.data()); });

Verifique si doc.data() ya tiene datos en caso de que la extensión haya agregado un documento antes de que el usuario llegue a esta página.

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