当前位置: 首页 > 知识库问答 >
问题:

Firebase消息传递不适用于Android 2.3.6

沙柏
2023-03-14

我正在使用firebase消息发送推送通知。我已经使用安装了Google Play Services(版本3.2.25)的运行Android 4.1.2版的设备进行了测试,它可以正常工作,并正确调用了onMessageReceived。但是,当我尝试使用运行Android 2.3.6和最后一个Google Play Services(必须安装)的设备进行测试时,即使Firebase Web UI表示已成功发送,消息也从未出现。

那么,为什么它适用于运行较旧Google Play服务的较新Android,即使文档说使用9.4.0版本,以及为什么它在其他情况下不起作用。

Build.gradle (app)

apply plugin: 'com.android.application'

android {

    compileSdkVersion 24
    buildToolsVersion "24.0.2"

    defaultConfig {
        applicationId "com.example.sipas"
        minSdkVersion 10
        targetSdkVersion 24
    }

    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

}

dependencies {
    compile 'com.android.support:support-v4:24.2.0'
    compile 'org.greenrobot:eventbus:3.0.0'
    compile 'me.dm7.barcodescanner:zbar:1.9'
    compile 'com.google.code.gson:gson:2.4'
    compile 'com.jakewharton:disklrucache:2.0.2'
    compile 'com.squareup.okhttp3:okhttp:3.4.1'
    compile 'com.squareup.okio:okio:1.9.0'
    compile 'com.birbit:android-priority-jobqueue:2.0.0'
    compile 'org.jetbrains:annotations-java5:15.0'
    compile 'com.google.android.gms:play-services-gcm:9.4.0'
    compile 'com.google.firebase:firebase-core:9.4.0'
    compile 'com.google.firebase:firebase-messaging:9.4.0'
}

apply plugin: 'com.google.gms.google-services'

Build.gradle(项目)

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.3'
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

共有1个答案

颛孙兴旺
2023-03-14

我遇到了同样的问题,试着从build.gradle中删除编译的“com . Google . GMS:Google-services:9 . 4 . 0 ”,我的推送通知在每部手机上都很好用!

 类似资料:
  • 我想使用谷歌的Firebase为网络构建一个消息应用程序。在这个应用程序中,用户应该向/从其他用户发送和接收消息。我检查了谷歌的Firebase网站,但我迷路了。你能告诉我从哪里开始吗?你能给我看任何与Firebase网络消息相关的教程或类似的东西吗?我欢迎任何建议。谢谢。

  • 我正在尝试使用FireBase云消息传递。我正在接收令牌,但它没有从控制台收到任何通知。这是我的舱单: 我的代码与示例中的代码几乎相同: 我在这里检查了一个问题,Firebase云消息通知未被设备接收,但仍然无法工作。

  • 添加了从FCM到Facebook的API密钥 但从FB控制台“推送活动设置验证”到有效的“您的设备令牌”-不工作 错误: 无法验证用于发送消息的发件人帐户。这可能是由于无效的项目号作为密钥发送,或者密钥是有效的,但禁用了FCM服务,或者我们的服务器没有在服务器密钥IP中列入白名单。 是什么导致了这些问题?有什么日志我可以看吗?

  • 我必须在SpringJava中为多层架构制作一个RESTAPI,其中需要为Firebase云消息传递(FCM)构建DAO、控制器和服务管理器,以向android应用程序发送推送通知消息,但我无法在Java中配置服务器以向设备发送通知。我怎么能?

  • 新服务器密钥是否仅限于消息传递? 说明:在firebase项目设置中,我可以获得“旧”和新服务器密钥(云消息选项卡)。旧版本无法通过发送推送通知https://fcm.googleapis.com/fcm/send 因为响应说它是一个遗留服务器密钥。但在这里,它可以被限制在某些谷歌API中https://console.developers.google.com/apis. 谷歌API控制台中没有

  • 我使用Firebase的云函数编写了一个云函数,该函数向Firebase消息传递的某些主题发送通知。函数的最后部分定义要发送的有效负载,然后发送: 但是,我在Firebase控制台中获得了错误日志: 错误:消息负载包含"notification.data"属性的无效值。值必须是字符串。 当我注销有效负载时,我确认它是所有字符串: 然而,当我从我的iPhone应用程序发送相同的有效载荷(我试图避免,

  • 我正在尝试让Firebase云消息传递正常工作。我现在只是想做个测试。我所做的就是这篇文章的全部内容: https://firebase.google.com/docs/cloud-messaging/js/client?authuser=0#retrieve-the-current-registration-token 然后在最后你会看到这个: 然后我复制这个,并通过访问Firebase(网站)

  • 文件。当前密钥、web API密钥和服务器密钥之间有什么区别,在哪里可以找到当前密钥FCM控制台?我找不到它。