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

125
Visualizações
Error de transacción al probar firebase firestore

Estoy tratando de escribir algunas pruebas para las funciones de la nube que he escrito, pero me enfrento a un problema en el que una transacción nunca se realiza correctamente y termina en un error:

9 FAILED_PRECONDITION: the stored version (1648901730789554) does not match the required base version (0)

El código problemático es el siguiente:

 await firebase.db().runTransaction((t) => { return t.get(docRef).then((doc) => { if (!doc.exists) { console.log("no exist"); } }); });

Se ejecuta varias veces (verificado con el depurador), y luego se lanzan los mensajes de error...

Y la prueba de base de fuego env init:

 export async function initialize() { fb.initializeTestApp({ projectId: "my-test-project", auth: { uid: "alice", email: "alice@example.com" } }); const testEnv = await initializeTestEnvironment({ projectId: "demo-project-1234", firestore: { rules: fs.readFileSync("../firestore.rules", "utf8"), // Load rules from file // host and port can be omitted if they can be discovered from the hub. }, }); const alice = testEnv.authenticatedContext(uid); const db = (alice.firestore() as unknown) as firestore.Firestore; firebase.db = () => db; return testEnv; }

¿Estoy haciendo algo mal?

Nota: actualmente solo tengo una prueba que se ejecuta, nada más. Y los emuladores de Firebase se están ejecutando, sin que ninguna otra aplicación acceda a ellos.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Después de investigar un poco más, descubrí que estaba mezclando @firebase/testing y firebase-admin , y el asunto no debería usarse para las funciones de back-end de prueba unitaria de acuerdo con esta publicación .

En una nota al margen, parece que ya hay una función para crear un documento si no existe:

 docRef.create(...).then(() => log("ok")).catch(() => log("Not ok"))
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