firebase-cloud-messagingKomma igång med eldbas-molnmeddelanden


Anmärkningar

En ökad vanlig fråga är "hur man skickar aviseringar från enhet till enhet", tyvärr är svaret: du kan inte. FCM måste utlösas för att skicka push-aviseringar. Det kan göras på tre olika sätt:

  1. Direkt i Firebase-webbkonsolen
  2. Ställa in en brandbasfunktioner lyssnaren och sedan utlösa FCM
  3. En server begär till FCM att skicka ett push-meddelande

En push-anmälan är en informations nyttolast som skickas från FCM. Det finns tre typer av push-meddelanden: notification , data , notification and data . Denna information kan representeras som en JSON:

  {
    "to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
    "notification" : {
      "body" : "great match!",
      "title" : "Portugal vs. Denmark",
      "icon" : "myicon"
    },
    "data" : {
      "Nick" : "Mario",
      "Room" : "PortugalVSDenmark"
    }
  }

Ovanstående exempel är för den tredje typen, notification och data kombinerade. Det är vad som kommer att ställas till FCM att skicka.

  1. Konsolen kan skicka notification och notification med data men aldrig bara data
  2. Funktioner och vilken server som helst kan skicka de tre typerna

Betydelsen av notification är att tillåta applikationer att få standardinställningar som driver andra team som marknadsföring att öka applikationstillväxten genom att helt enkelt använda webbkonsolen utan ytterligare kodning som behövs bredvid att lägga till biblioteket i projektet.

Vänligen förvirra inte push-meddelandet, notification och visuellt meddelande, det här sist motsvarar en Android-klass (vanligtvis NotificationCompat).

Uppförandet av push är annorlunda beroende på typ och om appen är i förgrunden eller i bakgrunden. Inte i förgrunden betyder, minimerad eller stängd.

  1. notification kommer att utlösa en standardvisuell avisering om appen inte är i förgrunden , denna avisering kan anpassas i manifestet, se dokumentation . Om appen är i förgrunden måste vi anpassa beteendet i metoden onMessageReceived .
  2. data typ beteende måste alltid anpassas.
  3. Kombinerat notification och data om appen inte är i förgrunden kommer att utlösa standard visuella anmälan och data nyttolasten kommer att vara tillgängliga när användaren klickar. Eftersom startapparataktiviteten utlöses när den visuella meddelandet klickas måste du bokstavligen getIntent().getStringExtra("yourKey"); i den aktiviteten för att få informationen. Om appen är aktiv (i förgrunden), då måste man anpassa beteendet inuti onMessageReceived metod och du får tillgång till data nyttolasten omedelbart.

För att få information om nyttolast måste du göra det i metoden onMessageReceived , där det enda tillgängliga argumentet är meddelandet:

  1. För att få notification du måste till remoteMessage.getNotification() kan du få kroppen eller titeln med motsvarande metoder
  2. För att få de data du behöver till remoteMessage.getData().get("yourKey") .

Är en bra idé att lägga till varje verifiering som inte är noll , det kommer att finnas flera typer av meddelanden som kommer i avancerade appar. En bra strategi är att verifiera om var och en, notification och data inte är ogiltig. En konsekvent användbar strategi är att alltid använda en type knappa in data anmälningar i syfte att göra vissa flödeskontroll.

För att skicka data från Firebase-webbkonsolen måste de avancerade alternativen öppnas.

notification är begränsade och anges i dokumentationen. Värdena i alla typer kan endast vara sträng .

Om du har problem med att hitta någon dokumentation i Firebase, gå till botten av sidan och ändra språket till "engelska", dokumentationerna är tunnare på vissa andra språk.

Installation eller installation

Firebase Cloud Messaging är Firebase-tjänsten som hanterar push-aviseringar. Du kan lägga till den här tjänsten i alla klienter: webb, Android eller IOS. Den specifika funktionen för varje måste läsas från dokumentationen .

För att lägga till FCM i alla typer av projekt, lägger du alltid till ett bibliotek .

Att betrakta det speciella stödet för Android är värt att ta några rader för det. Skapa ett nytt projekt med Android Studio, i menyn går du till Verktyg / Firebase, det utlöser Firebase-assistenten. Välj "Cloud Messaging" och följ steg ett och två.

  1. Om ditt projekt tidigare lägger till en annan Firebase-tjänst kommer steget att markeras som avslutat, annars måste du göra det. Det första steget låter dig skapa ett projekt i Firebase eller skapa ett nytt. Detta steg kommer att ladda ner en google-service.json-fil som har konfigurationen för att ansluta till Firebase-projektet. Denna fil finns i mappen "app".
  2. I det här steget läggs Google Services-biblioteket och Firebase-biblioteket till graden, det kommer också att göra lite extra konfiguration i dessa filer också.

Detta är grunden för att lägga till FCM i ett projekt. Från och med nu kan klienten redan få FCM-push-aviseringar som innehåller en "meddelande" nyttolast så länge appen inte är i förgrunden (mer information i kommentarerna).

För att ytterligare anpassa FCM-beteendet hos klienten måste vi lägga till två tjänster, detta är väl dokumenterat på den officiella webbplatsen. Återigen kommer vi att ta hänsyn till Android:

  1. Skapa en klass som utvidgar FirebaseMessagingService och åsidosätter metoden onMessageReceived
  2. Skapa en klass som utvidgar FirebaseInstanceIdService och åsidosätter metoden onTokenRefresh
  3. Registrera båda klasserna i manifestet, gör detta i application </intent-filter> </intent-filter>

Du kan få notification nyttolast och data nyttolasten inuti onMessageReceived metod som använder det enda argumentet där. onTokenRefresh metoden kallas när FCM-tokenet tilldelas av FCM. En FCM-token är en unik id för appinstallationen och enheten och kan användas som en adress för enheten för att direkt skicka pushmeddelanden.

Läs kommentarer för mer information om typerna av anmälan och tillhörande beteende.