Плагин, по сути, выполняет синтаксический анализ вашего google-services.json
файла и копирует значения в нем в файл ресурсов XML.Затем он внедряет некоторый код в ваш проект, который позаботится о том, чтобы вы вызывали FirebaseApp.initializeApp
.
Вы, конечно, можете сделать все это самостоятельно, если хотите.
В вашем AndroidManifest.xml:
<provider
android:authorities="yourapp.package.name.myFcmInitProvider"
android:name=".MyFcmInitProvider"
android:exported="false" />
<!-- Make sure that Google's FirebaseInitProvider isn't included in your app -->
<provider
android:name="com.google.firebase.provider.FirebaseInitProvider"
android:authorities="yourapp.package.name.firebaseinitprovider"
android:exported="false"
tools:node="remove" />
MyFcmInitProvider.kt:
class MyFcmInitProvider : ContentProvider() {
override fun onCreate(): Boolean {
// Application ID can be found in google-services.json.
// Add additional credentials as necessary.
val builder = FirebaseOptions.Builder().setApplicationId(myApplicationId)
if (null == FirebaseApp.initializeApp(context, builder.build())) {
// Initialization failed
}
return false
}
// Required overrides
override fun getType(uri: Uri?): String? = null
override fun delete(uri: Uri?, selection: String? selectionArgs: Array<out String>?): Int = 0
override fun update(uri: Uri?, values: ContentValues?, selection: String?, selectionArgs: Array<out String>?): Int = 0
override fun insert(uri: Uri?, values: ContentValues?): Uri? = null
override fun query(uri: Uri?, projection: Array<out String>?, selection: String?, selectionArgs: Array<out String>?, sortOrder: String?): Cursor? = null
}