2016-07-06 56 views
0

在初学者中,我已阅读此主题:Remove firebase analytics from android app completely - 但它没有给我答案。在我开发的应用程序中,我不得不实施推送通知。我想从GCM开始,然后我发现了Firebase。我将它添加到我的项目中,然后实现了它的定价。我决定取消它,然后回到GCM。我从代码中删除了所有与Firebase相关的东西,我认为一切都会好起来的。从项目中删除Firebase而不会丢失GCM

最近我开始对应用程序的优化工作,并注意到调试日志的某些信息:

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

它的推移而上,加倍重试时间。我不确定它是如何影响我的应用程序的(低下,一旦我看到它每次发生时都会造成巨大的帧丢失),但我对于Firebase仍然在我的应用程序中完全不知所措。只有它的实例位于build文件夹中,这意味着我无法自己删除它们。我试图使用配置,我试图排除这个独家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。有任何想法吗?

+0

从gradle(模块)中删除Firebase分析的依赖关系 –

+0

FCM是GCM的升级版本,它被谷歌建议使用FCM,反正你的疑问是不同的,删除谷歌播放服务依赖性,并使用'com.google.android .gms:play-services-gcm:9.2.0' – Gaurav

回答

0

也从manifest.xml文件中删除FirebaseMessagingServiceInstanceIDReceiver

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

 <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 BUIL文件。

+0

清单文件已经过很长时间了。我可以在任何build.gradle文件中找到没有依赖关系。 – n4zArh

+1

在你的问题中显示你的清单和Gradle Build File。 – Saini

0

我有同样的问题。我已经在谷歌搜索,做了一件小事,现在它的工作。

替换关联的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。

我希望这可以提供帮助。