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 está substituindo existenteboolean no banco de dados do Cloud Firestore Document. Eu pensei que oSetOptions.merge() não substituiria os valores existentes? Talvez eu tenha perdido algo sobre comoTransação funciona ou isso é uma coisa relacionada à versão beta, já que CF é beta

questionAnswers(1)

yourAnswerToTheQuestion