adicionar uma propriedade a um objeto criado (Funções Firebase)

votos
0

Estou ligando para a criação de objetos em uma coleção específica (ordens) Eu preciso adicionar uma nova propriedade para o objeto antes de ser salvo, não retornando nada, sem sucesso.

Eu olhei a documentação no https://firebase.google.com/docs/reference/functions/functions.firestore.DocumentBuilder#writing_data mas é para onUpdate por isso não funciona como eu pretendo isso.

exports.createOrder = firestore.document('orders/{orderId}').onCreate((snap, context) => {
  const newOrder = snap.data()
  console.log('triggered', newOrder)
  const orderId = randomize('A0', 10)
  console.log({ orderId })
  return newOrder.ref.set({ orderId }, { merge: true })
  //newOrder.ref.set is undefined
  return newOrder.set({ orderId }, { merge: true })
  //newOrder.set is undefined
})
Publicado 10/10/2019 em 01:03
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

snap.data()retorna um objeto JavaScript bruto cujas propriedades contêm os valores dos campos no documento. Ele não contém uma propriedade chamada ref(a menos que você tivesse um campo de documento também chamado ref).

Se você precisa escrever de volta para o documento que mudou, use o objeto tipo DocumentReference previsto no snap.ref. Veja também a documentação da API para o DocumentSnapshot tipo de objeto passado para a função.

snap.ref.set(...)
Respondeu 10/10/2019 em 01:09
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more