颤振问题中的 Firebase 实施

Posted

技术标签:

【中文标题】颤振问题中的 Firebase 实施【英文标题】:Firebase implementation in flutter issues 【发布时间】:2020-01-25 18:49:42 【问题描述】:

在我的颤振项目中实施 firebase 时遇到很多问题,由于 gradle 错误,我不得不从 4.3 恢复到 4.2。现在将它加载到我的模拟器上需要很长时间,我切换到实际设备但安装不会打开。最近有人在颤振项目中实现了firebase消息传递吗?我即将放弃使用它的整个想法。

我已将所需的行添加到 build.gradle 和 app/build.gradle 以及我的 yaml 文件中,仅此而已。

【问题讨论】:

我也遇到了一些问题,所以我只使用了 gradle 3.3.0 版本 我可以通过从我的 yaml 文件中删除 firebase_core 来修复它 您是只是接收通知,还是也从应用程序发送通知?我也在尝试从应用程序发送。 如果我想从应用程序发送它,我会在 firebase 上创建一个函数,当应用程序通过 HTTP 请求请求它时会处理它。 【参考方案1】:

从今天开始(2019 年 9 月 27 日 20:00 UTC,因为颤振构建可能随时中断),我已经让它工作了,我会告诉你我的构建中有什么以便让它工作(评论有点太长了)。我已经测试过它可以在 iosandroid 上运行,并且可以正确构建以供发布。

首先切换到flutter主频道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 文件夹。我假设在某些时候这一切都会得到很好的记录,但目前它有点狂野。

【讨论】:

以上是关于颤振问题中的 Firebase 实施的主要内容,如果未能解决你的问题,请参考以下文章

如何在后台监听firebase实时数据库更新事件并使用颤振自动启动应用程序(如Messenger中的调用功能)?

使用颤振(Windows)应用程序进行firebase匿名登录时出现MissingPluginException异常

颤振中的firebase电话身份验证问题

获取 Firebase 电话身份验证 OTP 时出错

如何停止颤振应用程序中的firebase错误

如何从firebase颤振中的文档中检索列表?