Another alternative is to utilize the Navigation architecture component. Your Fragment would display a progress indicator to let the user know the Firebase call has begun. It would then call the view model, and inside the viewmodel (when the asynchronous process is complete) you would call the navigation controller to ask it to move you to the next screen. It’s the job of Google’s navigation controller to switch which fragment is displayed, keeping the view code simple, and viewmodel free of android specific classes / Contexts.