我在使用FCM时遇到了麻烦,应该是一个相当简单的多味道Android应用程序设置 .

我们有相同应用程序的多种口味(有效品牌皮肤只有不同的字符串/图标)和不同的应用程序ID(它们在Play商店中显示为不同的应用程序) .

这些在build.gradle中设置为flavorDimension . 每个应用程序ID都在同一Firebase项目中注册为单独的应用程序 . 我的应用程序根目录中有一个google-services.json文件,其中包含所有已定义的flavor的信息 .

现在,问题是:FCM通知仅适用于主应用程序风格 . 发送到品牌应用程序的特定实例(FCM注册令牌)的通知永远不会被设备接收 . 请注意,所有后端代码都是相同的 . 我已经在各种设备上测试了每种风味,问题仍然存在 .

身份验证适用于产品风格,因此整体Firebase集成似乎不是问题 .

我的build.gradle看起来像这样:

apply plugin: 'com.android.application'

...

android {

...

defaultConfig {
        applicationId "com.app.main"
        ...
}

...

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
        }
    }

flavorDimensions "brand"
    productFlavors {
        main {
            dimension "brand"
        }
        brand1 {
            applicationId "com.app.brand1"
            dimension "brand"
        }
        brand2 {
            applicationId "com.app.brand2"
            dimension "brand"
        }
...
}

...

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