web-dev-qa-db-fra.com

FirebaseCloudMessaging: la synchronisation en arrière-plan de FirebaseInstanceId a échoué - SERVICE_NOT_AVAILABLE

J'ai utilisé l'API Firebase Cloud Messaging (FCM) pour la notification Push dans Android. Lorsque j’ai mis en place ce travail parfait mais qu’il ne peut maintenant pas trouver le Service de Google Play.

l'erreur est: 

FirebaseInstanceId: la synchronisation en arrière-plan a échoué: SERVICE_NOT_AVAILABLE,

S'il vous plaît aidez-moi comment résoudre. J'ai utiliser ci-dessous la dépendance dans le fichier Gradle.

dependencies {
    compile files('libs/ksoap2-Android-Assembly-3.4.0-jar.jar')
    compile 'com.Android.support:appcompat-v7:23.0.0'
    compile files('libs/gson-2.2.4.jar')
    compile files('libs/activation.jar')
    compile files('libs/mail.jar')
    compile files('libs/additionnal.jar')
    compile 'com.Android.support:multidex:1.0.1'
    compile 'com.facebook.Android:facebook-Android-sdk:4.14.0'
    compile 'com.google.firebase:firebase-messaging:9.0.2'

    compile('com.google.Android.gms:play-services:9.0.2') {
        exclude group: "play-services-wallet"
        exclude module: "play-services-wallet"
        exclude group: "play-services-ads"
        exclude module: "play-services-ads"
    }

}

Merci d'avoir pris le temps de lire ceci.

18
Chirag Parmar
  1. Vérifier la connectivité Internet
  2. Vérifiez si les outils du SDK Android (Outils -> Android -> Gestionnaire de SDK -> onglet Outils du SDK) possèdent la dernière version de "Services Google Play" et si ce n'est pas le cas, installez le package . Si vous utilisez l'émulateur, arrêtez-le. et recommencez.Il fonctionne
12
Sujatha

Tu peux vérifier 

  1. Vérifiez votre connexion Internet sans proxy et ouvrez une connexion Internet 
  2. Remplacez votre google-service.json par un nouveau, vous pouvez l'obtenir dans firebaseconsol
  3. Veuillez vérifier si votre appareil contient un service Google Play et qu'il fonctionne ou non, firebase ne fonctionne pas sans le service Google Play 

Vérifier - le service FireBaseInstanceId n'est pas enregistré

8
sushant gosavi

Après une longue lutte, j'ai trouvé la réponse. Si le service Google Play n'est pas en cours d'exécution, le journal FirebaseInstanceId background sync failed - SERVICE_NOT_AVAILABLE est imprimé, afin que vous puissiez vérifier si votre service Google Play fonctionne correctement ou non.

Peut-être que cette information vous est utile!

5
Yogesh Rathi

le service doit être lié dans le Manifest.xml

    <!-- Firebase InstanceId Service -->
    <service
        Android:name="eu.acme.service.FireBaseInstanceIdService"
        Android:exported="false" >
        <intent-filter>
            <action Android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
        </intent-filter>
    </service>

alors on peut accéder à une seule méthode exposée (les autres noms sont obscurcis = non fiables):

package eu.acme.service;

import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.FirebaseInstanceIdService;

public class FireBaseInstanceIdService extends FirebaseInstanceIdService {

    @Override
    @Android.support.annotation.WorkerThread
    public void onTokenRefresh() {

        /* obtain the current InstanceId token: */
        String token = FirebaseInstanceId.getInstance().getToken();
    }
}

on ne peut que contourner le problème, en ne le provoquant pas, par exemple. en n'ajoutant aucun auditeur AuthState tout en sachant qu'il n'y a pas de réseau actif présent, comme expliqué ici - comme il semble, on ne peut pas intercepter l'exception levée depuis la bibliothèque - ce qui peut être ignoré, car il se contente de se plaindre , qu'il n'y a pas de connectivité réseau.

com.google.Android.gms.iid et com.google.firebase.iid sont à peu près identiques.

4
Martin Zeitler

Moi aussi j'ai eu le même problème, résolu par la seule option Clean Project en construction. J'espère que cela pourra aider n'importe qui ici.

0
Praveen Kashyap

Dans mon cas, j'ai redémarré mon PC et cela a fonctionné.

Je ne suis pas un expert, alors j'aurais peut-être couvert l'un des conseils mentionnés par mon approche

0
Max Mark

La solution la plus simple consiste à supprimer les dossiers bin et obj du répertoire .Droid.
.__ De cette façon, vous avez un départ propre à chaque fois.

0
IvanF.

Je devais désactiver mon VPN - espérons que cela aidera quelqu'un!

0
Anton Webb

Je viens d'avoir ce problème. Dans mon cas, cela ne fonctionnait que lorsque j'arrêtais, fermais et ouvrais l'émulateur. Je n'ai pas fait d'autres changements.

0
Gi Tavares

Connectez votre mobile avec une connexion wifi différente avec un fournisseur de service différent . Cela semble bizarre mais vous pouvez l'essayer!

0
Suraj Vaishnav

Dans mon cas, je viens de supprimer l'exécution instantanée des préférences d'Android Studio.

0
Marco