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

149
Visualizações
Función Firebase con Converter Wipes Document Reference en Set()

Tengo una función programada que restablece un valor entero a cero en mi tienda de fuego. El problema con el que me estoy encontrando es que, si bien el conjunto de combinación tiene éxito (para las propiedades especificadas), de alguna manera restablece la referencia del documento de mi Organization a nulo.

Hasta ahora he probado lo siguiente

  • No usar un convertidor junto con la función Update() (en lugar de Set() ). Si bien esto funciona, no está tipificado, y tengo que deshacerme del convertidor que encapsula la conversión moment() to Date.
  • Usando Set() y simplemente pase el objeto completo.
 user.reference?.withConverter(userConverter).set(user)

Esto también funciona, pero anula todo el objeto del usuario y puede provocar problemas de simultaneidad en caso de que un usuario también actualice su objeto mientras se ejecuta la función cronometrada.

Estoy buscando una solución que me permita usar la clase de convertidor junto con un merge Set() .

La interfaz User se ve así

 export interface User extends Document { email?: string name?: string organization?: Organization | null numberOfForwards?: number lastForwardReset?: moment.Moment }

con su convertidor asi

 export class UserConverter implements firestore.FirestoreDataConverter<User> { toFirestore(user: User): firestore.DocumentData { return { email: user.email, name: user.name, organization: user.organization ? user.organization.reference : null, number_of_forwards: user.numberOfForwards, last_forward_reset: user.lastForwardReset?.toDate() } } fromFirestore(snapshot: firestore.QueryDocumentSnapshot): User { const data = snapshot.data()! return { reference: snapshot.ref, email: data.email, name: data.name, organization: data.organization ? { reference: data.organization } : null, numberOfForwards: data.number_of_forwards, lastForwardReset: moment(data.last_forward_reset.toDate()) } } }
 export const resetNumberOfForwards = functions.pubsub .schedule('every 15 minutes') .onRun(async () => { const reset = (user: User) => { console.log(`Resetting ${user.email} from [${user.numberOfForwards}] to [0]`) // Claim user reference user.reference ?.withConverter(userConverter) .set({ numberOfForwards: 0, lastForwardReset: Moment() }, { merge: true }) }

para que funcione el conjunto parcial, he incluido el siguiente fragmento en la parte superior de mi archivo

 firebase.firestore().settings({ ignoreUndefinedProperties: true })
about 4 years ago · Juan Pablo Isaza
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