Firebase (even without offline persistence) uses a simple last write wins strategy. This will work well with most apps. However, if this is not enough, our security rules allow you to have more complex strategies based on client time, for example. Even without offline it really depends on the kind of conflict resolution you want in your app. For complex apps that require merges we recommend to build something like operational transform on top of Firebase (As an example look at Firepad [1]).
[1] http://www.firepad.io/