¿Por qué mi transacción Cloud Firestore Transaction no se fusiona cuando uso SetOptions.merge ()?

Acabo de comenzar con Firestore y uso elSetOptions.merge() en una transacción de Cloud Firestore como esta, nada especial, supongo:

final Map<String, Object> visitorMap = new HashMap<>();
visitorMap.put(Visitor.NOTIFY_ON_CHAT_MESSAGE, true);
visitorMap.put(Visitor.TIME, FieldValue.serverTimestamp());
final DocumentReference docRefVisitor = mFirestore
        .collection(VISITORS)
        .document(theId)
        .collection(VISITORS_USER)
        .document(getCurrentUser().getUserId());
mFirestore.runTransaction(new com.google.firebase.firestore.Transaction.Function<void>() {
    @Nullable
    @Override
    public void apply(@NonNull Transaction transaction) throws FirebaseFirestoreException {
        transaction.set(docRefVisitor, visitorMap, SetOptions.merge());
    }
})

Los documentos dicen:

Si el documento no existe, se creará. Si el documento existe, su contenido se sobrescribirá con los datos recién proporcionados, a menos que especifique que los datos deben fusionarse en el documento existente

Yo experimento esoVisitor.NOTIFY_ON_CHAT_MESSAGE boolean se sobrescribe existenteboolean en el documento de la base de datos de Cloud Firestore. Pensé que elSetOptions.merge() no sobreescribiría los valores existentes? Tal vez me perdí algo sobre cómoTransacción funciona o esto es algo relacionado con Beta ya que CF es Beta

Respuestas a la pregunta(1)

Su respuesta a la pregunta