Push-Benachrichtigungen funktionieren nicht in Firebase 4.0

8

Ich habe meine Pods heute auf den neuen Firebase 4.0 aktualisiert. Ich ging die vorgeschlagenen Änderungen durch und griff nach Code aus dem Github-Beispiel. Ich werde ehrlich sein, ich bin ratlos, ich nehme den FCM-Token und sende eine Nachricht von der Firebase-Konsole und bekomme nichts.

Ich aktualisiere und es heißt, die Nachricht wurde gesendet, aber ich überprüfe die Konsole und das Gerät und nichts ist da. Was vermisse ich?

Hier ist mein Appdelegate:

%Vor%

Hier sind die Protokolle:

%Vor%

& gt; & gt; & gt; ------ & gt; ** Gelöst & lt; ------- & lt; & lt; & lt; **

FÜR EINEN TAUCHGANG IN DIE PROBLEMLÖSUNG UND DIE ENTSCHEIDENDE FACEPALM AM ENDE ... FOLGE DIESEM GEWINN: Ссылка

BESONDERE DANK AN DAS RIZ FÜR SEINE ZEIT, UM DAS PROBLEM ZU KENNEN !!

    
Erik Grosskurth 31.05.2017, 20:30
quelle

1 Antwort

11

Firebase Cloud Messaging ist ziemlich komplex, um unter iOS korrekt eingerichtet zu werden, da Sie sicherstellen müssen, dass Ihre APNs-Konfiguration funktioniert, und fügen Sie dann FCM hinzu.

APNs einrichten

APNs Authentication Keys sind auch wirklich nett von Apple, da sie nicht ablaufen, sowohl in Sandbox- als auch Produktionsumgebungen funktionieren und der gleiche Schlüssel (als .p8 -Datei) verwendet werden kann, um Push-Benachrichtigungen an zu senden Alle Apps unter diesem Apple Developer-Konto.

Es führt auch einen neuen Bereich für einen möglichen Fehler ein: Tippfehler . Sie können eine zufällige Bundle-ID eingeben, und solange das richtige "Team" in Xcode konfiguriert ist, erhält Ihre App gerne einen APNs-Geräte-Token.

Senden einer Benachrichtigung an dieses Geräte-Token über APNs (Ich habe dieses Skript verwendet, um Testbenachrichtigungen über HTTP / 2 + Auth Keys zu senden) wird einen DeviceTokenNotForTopic Fehler ergeben, so dass Sie herausfinden sollten, was schief gelaufen ist.

Checkliste

  • Stellen Sie sicher, dass Ihre App-Paket-ID mit der Paket-ID übereinstimmt, die Sie an
  • senden
  • Stellen Sie sicher, dass Sie über eine Berechtigungsdatei verfügen, die mindestens aps-environment key auf development gesetzt hat (dies wird automatisch für Sie in Release-Builds durch Xcode aktualisiert)
  • Wenn Sie in anderen SDKs wie Firebase "automatische" Konfiguration (d. h. Swizzling) verwenden, stellen Sie sicher, dass Sie ein APNs-Token in application:didRegisterForRemoteNotificationsWithDeviceToken: erhalten. Das bestätigt zumindest, dass deine APNs in Ordnung sind (aber du könntest immer noch einen Tippfehler haben)

FCM-Einrichtung

Stellen Sie sicher, dass die Datei GoogleService-Info.plist , die Sie verwenden, für die gleiche App wie die BUNDLE_ID -Schlüssel im plist ist. Ich habe gesehen, dass Entwickler denken, dass APNs Keys in allen ihren Apps funktionieren sollten, dass das gleiche GoogleService-Info.plist in allen Apps in Ordnung ist, aber das ist nicht der Fall.

Testen

Ich würde auch empfehlen, sich Testbenachrichtigungen per FCMs HTTP-API vom Terminal zu senden , um das Problem zu beheben. Im Gegensatz zur Firebase-Benachrichtigungskonsole erhalten Sie hier alle unbearbeiteten Fehler. Hier ist ein Beispiel:

%Vor%

Geben Sie Ihren SERVER_KEY mit dem Wert in Ihrer Firebase Console & gt; Projekteinstellungen & gt; Cloud Messaging & gt; Serverschlüssel Ersetzen Sie FCM_TOKEN durch Ihr FCM-Token.

Ich verwende Paw , um Testbenachrichtigungen an meine Apps zu senden, wenn ich am FCM-SDK arbeite.

    
Rizwan Sattar 02.06.2017, 21:59
quelle