Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

235
Vistas
¿Cómo puedo ignorar los valores indefinidos al actualizar los datos de Firestore desde una función de Google Cloud?

En mi archivo index.js, tengo:

 const db = admin.firestore(); db.settings({ignoreUndefinedProperties:true});

En mi otro archivo .js con la función real, tengo:

 const functions = require('firebase-functions'); const {Client, ReverseGeocodingLocationType, AddressType} = require("@googlemaps/google-maps-services-js"); async function addLocationData(addressComponents, reference){ cityName = getLocationType(addressComponents, 'locality') stateName = getLocationType(addressComponents, 'administrative_area_level_1') countryName = getLocationType(addressComponents, 'country') await reference.set({ 'location.city': cityName, 'location.state': stateName, 'location.country': countryName },{ignoreUndefinedProperties:true}) return true }

Sin embargo, sigo recibiendo este error:

El valor del argumento "datos" no es un documento válido de Firestore. No se puede usar "indefinido" como valor de Firestore (se encuentra en el campo " location.city "). Si desea ignorar valores indefinidos, habilite ignoreUndefinedProperties .

Los datos de la ciudad en este caso no están definidos, pero quiero ignorar los datos no definidos.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

ignoreUndefinedProperties:true no es una SetOption válida

Referencia para SetOptions: https://firebase.google.com/docs/reference/js/v8/firebase.firestore.SetOptions

Puede pasar merge: true y omitir campos para dejarlos sin cambios.

Todavía necesita un cambio de código para no pasar claves que no han cambiado.

 async function addLocationData(addressComponents, reference){ cityName = getLocationType(addressComponents, 'locality') stateName = getLocationType(addressComponents, 'administrative_area_level_1') countryName = getLocationType(addressComponents, 'country') const data = {} if (cityName != null) { data['city.name'] = cityName; } // etc await reference.set(data, {merge: true}) return true }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda