Reputation: 5468
I want to implement the Firebase-Messaging plugin into my Android-App. I've started with the "quickstart-android-master/messaging"-example from github: https://github.com/firebase/quickstart-android/tree/master/messaging
This works for me! Log-Output:
D/FirebaseApp﹕ com.google.firebase.auth.FirebaseAuth is not linked. Skipping initialization.
D/FirebaseApp﹕ Initialized class com.google.firebase.iid.FirebaseInstanceId.
D/FirebaseApp﹕ com.google.firebase.crash.FirebaseCrash is not linked. Skipping initialization
D/FirebaseApp﹕ Initialized class com.google.android.gms.measurement.AppMeasurement.
I/FirebaseInitProvider﹕ FirebaseApp initialization successful
But if I want to implement the Plugin "com.google.firebase:firebase-messaging:9.0.2" into my app, the FirebaseApp isn't initialized! So the FirebaseApp plugin isn't starting! - No Log or token received!
I've also added apply plugin to build.gradle file in "app"-directory:
apply plugin: 'com.android.application'
android {
// ...
}
dependencies {
// ...
compile 'com.google.firebase:firebase-messaging:9.0.2'
}
// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'
And the google-services plugin to build.gradle in the "root" directory:
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.0.0'
}
}
Problems could be:
Upvotes: 16
Views: 44211
Reputation: 960
Another sign there are problems are logcat lines like this
FirebaseAuth: [GetAuthDomainTask] Error getting project config. Failed with INVALID_CERT_HASH 400
FirebaseAuth: [SmsRetrieverHelper] SMS verification code request failed: unknown status code: 17093 null
Check google-service.json, it should have your apk sha1 in it:
apk: sha1
SHA1: 4E:AA:54:E0:08:93:C6:CB:7B:8C:74:1E:2A:55:E7:60:XX:XX:XX:XX
google-service.json:
"certificate_hash": "4eaa54e00893c6cb7b8c741e2a55e760a5XXXXXX"
Delete the whole Android project in firebase, add it again and add your apk sha1. If your sha1 key changes (ie new app) delete the Android project again and start fresh.
In the past, in anger, I added sha256 and also tried setting up Android Device Verification, SafetyNet etc, none of these are needed.
Upvotes: 0
Reputation: 4008
In my case I was missing permission <uses-permission android:name="android.permission.INTERNET"/>
then reinstall the app
Upvotes: 0
Reputation: 5468
My problem was the "Manifest Merger". If I use the
xmlns:tools="http://schemas.android.com/tools"
and
tools:node="replace"
in the Application Tag of the Manifest, the FirebaseApp will not be initialized!
If you use replace attr on tools:node it will replace your lower priority declaration with the annotated one (see more here). You should use merge or merge only attributes instead.
This doesn't work:
<application
android:name="xxx"
android:icon="@mipmap/ic_launcher"
android:label="@string/application_name"
android:theme="@style/Theme.TemplateStyle"
tools:node="replace">
this works:
<application
android:name="xxx"
android:icon="@mipmap/ic_launcher"
android:label="@string/application_name"
android:theme="@style/Theme.TemplateStyle">
<!-- tools:node="replace"-->
If you want to overwrite or replace some attributes, use
tools:replace
instead!
Upvotes: 20
Reputation: 409
This close the issue for me:
implementation 'com.google.firebase:firebase-crash:16.2.1'
implementation 'com.google.firebase:firebase-auth:16.1.0'
Upvotes: 0
Reputation: 2167
In my case these permissions were missing in Android Manifest file:
<permission
android:name="com.app.appname.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.app.appname.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
Upvotes: 0
Reputation: 31
I had the same problem, add the following:
com.google.firebase:firebase-core before com.google.firebase:firebase-messaging
dependences {
compile 'com.google.firebase:firebase-core:9.4.0'
compile 'com.google.firebase:firebase-messaging:9.4.0'
}
Upvotes: -1