Для того, чтобы объединить несколько LiveData необходимо использовать класс MediatorLiveData. Данный класс умеет подписываться на обновления других LiveData. Для этого необходимо вызвать метод MediatorLiveData.addSource(). Он принимает в себя два аргумента: 1) Сама LiveData, на которую нужно подписаться 2) Observer, который будет вызываться при изменении элемента в этой LiveData.
Вот пример того, как можно объединить две LifeData:
val firstLiveData: LiveData<Any> = MutableLiveData()
val secondLiveData: LiveData<Any> = MutableLiveData()
val mediatorLiveData: MediatorLiveData<Any> = MediatorLiveData();
mediatorLiveData.addSource(firstLiveData) { value -> mediatorLiveData.value = value }
mediatorLiveData.addSource(secondLiveData) { value -> mediatorLiveData.value = value }
В данном случае MediatorLiveData будет вызывать колбэк observe(), каждый раз, когда будут изменяться данные в этих любой из этих двух LifeData.