Por que minha transação do Cloud Firestore não está se mesclando ao usar SetOptions.merge ()?

Apenas comecei com o Firestore e use oSetOptions.merge() em uma transação do Cloud Firestore como esta, nada de especial, eu acho:

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());
    }
})

Os documentos dizem:

Se o documento não existir, ele será criado. Se o documento existir, seu conteúdo será substituído pelos dados recém-fornecidos, a menos que você especifique que os dados devem ser mesclados no documento existente

Eu experimento issoVisitor.NOTIFY_ON_CHAT_MESSAGE boolean&nbsp;está substituindo existenteboolean&nbsp;no banco de dados do Cloud Firestore Document. Eu pensei que oSetOptions.merge()&nbsp;não substituiria os valores existentes? Talvez eu tenha perdido algo sobre comoTransação&nbsp;funciona ou isso é uma coisa relacionada à versão beta, já que CF é beta