I use the latest version of com.google.firebase:firebase-core:16.0.3 and the latest version of com.google.firebase:firebase-messaging:17.3.1. But they depend on the different versions of com.google.firebase:firebase-iid dependency (16.0.0 and 17.0.1):
firebase-core:16.0.3 depends on firebase-iid:16.0.0:
com.google.firebase:firebase-core:16.0.3
+--- com.google.firebase:firebase-analytics:16.0.3
| +--- com.google.android.gms:play-services-basement:15.0.1 (*)
| +--- com.google.android.gms:play-services-measurement-api:[16.0.1] -> 16.0.1
| | +--- com.google.android.gms:play-services-ads-identifier:15.0.1
| | | \--- com.google.android.gms:play-services-basement:[15.0.1,16.0.0) -> 15.0.1 (*)
| | +--- com.google.android.gms:play-services-basement:15.0.1 (*)
| | +--- com.google.android.gms:play-services-measurement-base:[16.0.2] -> 16.0.2
| | +--- com.google.android.gms:play-services-stats:15.0.1
| | | \--- com.google.android.gms:play-services-basement:[15.0.1] -> 15.0.1 (*)
| | +--- com.google.android.gms:play-services-tasks:15.0.1 (*)
| | +--- com.google.firebase:firebase-analytics-impl:[16.2.1] -> 16.2.1
| | | +--- com.google.android.gms:play-services-ads-identifier:15.0.1 (*)
| | | +--- com.google.android.gms:play-services-basement:15.0.1 (*)
| | | +--- com.google.android.gms:play-services-measurement-base:[16.0.2] -> 16.0.2
| | | +--- com.google.android.gms:play-services-stats:15.0.1 (*)
| | | +--- com.google.android.gms:play-services-tasks:15.0.1 (*)
| | | +--- com.google.firebase:firebase-common:16.0.1
| | | | +--- com.google.android.gms:play-services-basement:15.0.1 (*)
| | | | \--- com.google.android.gms:play-services-tasks:15.0.1 (*)
| | | \--- com.google.firebase:firebase-iid:16.0.0
firebase-messaging:17.3.1 depends on firebase-iid:17.0.1:
com.google.firebase:firebase-messaging:17.3.1
+--- com.google.android.gms:play-services-basement:15.0.1 (*)
+--- com.google.android.gms:play-services-tasks:15.0.1 (*)
+--- com.google.firebase:firebase-common:16.0.1 (*)
+--- com.google.firebase:firebase-iid:[17.0.1] -> 17.0.1 (*)
Therefore android google play services plugin fails with this error: "The library com.google.firebase:firebase-iid is being requested by various other libraries at [[17.0.1,17.0.1]], but resolves to 16.0.0. Disable the plugin and check your dependencies tree using ./gradlew :app:dependencies.".
Is this a bug? Are there any solutions to fix this problem?