从项目中删除Firebase而不会丢失GCM

时间:2016-07-06 11:50:25

标签: android firebase build.gradle

在初学者中,我已经阅读了这个帖子:Remove firebase analytics from android app completely - 但它没有给我回答我的问题。在我开发的应用程序中,我必须实现推送通知。我想从GCM开始,然后我发现了Firebase。我将它添加到我的项目中,然后实现了它的定价。我决定废弃它并回到GCM。我从代码中删除了所有与Firebase相关的内容,我认为一切都会好起来的。

最近我开始研究该应用程序的优化并注意到调试日志中的某些信息:

07-06 07:03:39.310 13286-13474/com.example.myapp D/FirebaseInstanceId: background sync failed: MISSING_INSTANCEID_SERVICE, retry in 20s

它一直在继续,重试时间翻倍。我不确定它是如何影响我的应用程序的(hovewer,一旦我看到每次发生时都看到大量丢失的帧),但我对Firebase仍然在我的应用程序中感到非常沮丧。只有它的实例位于构建文件夹中,这意味着我自己无法删除它们。我尝试使用配置,我试图将此排除在GCM之外,但仍然没有。

configurations {
    all*.exclude group: 'com.google.firebase', module: 'firebase-core'
    all*.exclude group: 'com.google.firebase', module: 'firebase-iid'
    all*.exclude group: 'com.google.firebase', module: 'firebase-common'
}

在我的build.gradle文件的开头是正确的。不确定它是否重要,但Android Studio告诉我它无法解析符号"排除"在这里。我也尝试将它放在编译GCM中(当然没有全部*),但它没有改变任何东西。

tl; dr我想要摆脱Firebase并且仍然在我的项目中使用GCM。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

还会从manifest.xml文件中删除 FirebaseMessagingService InstanceIDReceiver

从模块清单文件中删除以下内容。

        <service
            android:name=".MyFirebaseMessagingService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT"/>
            </intent-filter>
        </service>
        <!-- [END firebase_service] -->
        <!-- [START firebase_iid_service] -->
        <service
            android:name=".MyFirebaseInstanceIDService">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
            </intent-filter>
        </service>

还有 从模块级构建gradle文件中删除依赖项

答案 1 :(得分:0)

我遇到了同样的问题。我已经在google搜索过,做了一件小事,现在它可以工作了。

替换依赖项build.gradle(app_name)

dependencies {
    ....
    classpath 'com.google.gms:google-services:1.5.0-beta2'
    ....
}

替换app / build.gradle中的依赖项

dependencies {
    ....
    compile "com.google.android.gms:play-services:8.3.0"
    ....
}

清理项目并重建项目。

为什么classpath必须是1.5.0-beta2版本?因为此后的版本已包含firebase。

我希望这可以提供帮助。