在flutter项目中实现Firebase时遇到很多问题,由于gradle错误,我不得不从4.3恢复到4.2。现在将它永久地加载到我的模拟器上需要花费很多时间,我切换到了实际设备,但该安装无法打开。最近有人在一个扑朔迷离的项目中实现了Firebase消息传递吗?我将放弃使用它的整个想法。
我已经在build.gradle和app / build.gradle以及我的yaml文件中添加了所需的行。
答案 0 :(得分:1)
从今天开始(2019-09-27 20:00 UTC,我可以使用它,因为抖动的构建可能随时中断),我会告诉您我构建中的内容以便将其发布到工作(评论时间太长)。我已经测试了它可以在iOS和Android上运行,并且可以正确构建以进行发布。
首先,切换到抖动主通道flutter channel master
。这是为了解决gradle appbundle命名问题。
pubspec.yaml
dependencies:
firebase_messaging: ^5.1.6
android / build.gradle(注意gradle版本的更改)
buildscript {
ext.kotlin_version = '1.3.41'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.2'
}
}
android / gradle.properties(适用于AndroidX)
android.enableJetifier=true
android.useAndroidX=true
android / gradle / wrapper / gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
android / app / build.gradle
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
implementation 'com.google.firebase:firebase-messaging:20.0.0'
}
apply plugin: 'com.google.gms.google-services'
在同一文件中,请确保在defaultConfig
部分中,您对testInstrumentationRunner
的更改如下:
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
android / app / src / main / AndroidManifest.xml
<intent-filter>
<action android:name="FLUTTER_NOTIFICATION_CLICK" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
确保已将google-services.json
添加到android / app文件夹。我认为在某些时候都可以很好地记录下来,但目前有点荒唐。