¿Cuál es la principal diferencia entre usar { includeMetadataChanges: true } en la función de instantánea y no usarla en absoluto, como entendí de los documentos, es más sensible al cambio?
import { doc, onSnapshot } from "firebase/firestore"; const unsub = onSnapshot( doc(db, "cities", "SF"), { includeMetadataChanges: true }, (doc) => { // ... });Cuando escucha valores con includeMetadataChanges: true , su devolución de llamada también se invoca cuando solo han cambiado los metadatos de una instantánea . Específicamente, esto puede suceder cuando el cliente ha verificado que no hubo cambios en el servidor (por lo que fromCache se vuelve verdadero) o cuando se han confirmado escrituras locales en el servidor (y por lo tanto, hasPendingWrites se vuelve falso).
Sin la bandera, no se le notificaría de esos cambios, ya que no se muestran comúnmente en la interfaz de usuario de la aplicación (aunque definitivamente pueden serlo).