title: Dagger 2 trouble @Inject-ing FirebaseMessagingService
body: <p>I recently tried to migrate the application I'm working on from <code>GCM</code> to <code>FCM</code>.  While doing so, I found that where I'd previously been using <code>Dagger 2 (2.0.2)</code> to provide instances of my <code>Retrofit</code> APIs and other user-data managers inside the service (with no problems), I could no longer do so for the <code>FirebaseMessagingService</code>.  </p>
  
  <p>Whenever I'd try to compile with a subclass of <code>FirebaseMessagingService</code> listed in my <code>Dagger 2 Component</code> interface, I'd get an <code>IllegalArgumentException</code>. After digging through some code, it seems that the exception is thrown when <code>Dagger 2</code> tries to validate a class name and finds that the first letter isn't uppercase. <code>FirebaseMessagingService</code>, at least on my end, inherits from a uglified / minified codebase, and its immediate superclass is <code>zzb</code> (<code>public class FirebaseMessagingService extends com.google.firebase.iid.zzb</code>). </p>
  
  <p>My best guess is that this is the culprit. If this really is the problem, I'm not sure what to do about this aside from stick to <code>GCM</code> for now. Anyone have any ideas or similar experience with this?</p>
  
  <p><strong>EDIT: I got the chance to ask one of the Firebase developers about this issue: <a href="https://www.reddit.com/r/androiddev/comments/4upj1o/beware_of_the_new_firebase/d5tdbk3" rel="noreferrer">https://www.reddit.com/r/androiddev/comments/4upj1o/beware_of_the_new_firebase/d5tdbk3</a> - No resolution.  I'm probably just going to avoid direct injection and consolidate to a static API provider.</strong></p>