Когда вы используете set() в DocumentReference, вы помещаете данные в документ, который вы уже идентифицировали по некоторому уникальному идентификатору. (В противном случае у вас уже не было бы объекта DocumentReference!) Как сказано в документации: "Если документ еще не существует, он будет создан". Если документ уже существует, вы заменяете или добавляете в него новые данные.
Когда вы используете add() в CollectionReference, вы безоговорочно создаете новый документ в коллекции, и этому новому документу будет присвоен уникальный идентификатор. Переданные вами данные станут содержимым нового документа.