了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Nachrichtenpriorität festlegen und verwalten

Sie haben zwei Möglichkeiten, Downstream-Nachrichten unter Android die Zustellpriorität zuzuweisen: normale und hohe Priorität. Die Zustellung von Nachrichten mit normaler und hoher Priorität funktioniert wie folgt:

  • Normale Priorität. Dies ist die Standardpriorität für Datennachrichten . Nachrichten mit normaler Priorität werden sofort zugestellt, wenn das Gerät nicht schläft. Wenn sich das Gerät im Doze-Modus befindet, kann die Lieferung verzögert werden, um den Akku zu schonen, bis das Gerät den Doze-Modus verlässt. Wählen Sie für weniger zeitkritische Nachrichten, z. B. Benachrichtigungen über neue E-Mails, die Synchronisierung Ihrer Benutzeroberfläche oder die Synchronisierung von App-Daten im Hintergrund, die normale Zustellungspriorität.

    Wenn Sie auf Android eine Nachricht mit normaler Priorität erhalten, die eine Hintergrunddatensynchronisierung für Ihre App anfordert, können Sie mit WorkManager eine Aufgabe planen, um sie zu bearbeiten, wenn das Netzwerk verfügbar ist.

  • Hohe Priorität. FCM versucht, Nachrichten mit hoher Priorität sofort zuzustellen, was es FCM ermöglicht, ein schlafendes Gerät bei Bedarf aufzuwecken und eine eingeschränkte Verarbeitung (einschließlich eines sehr eingeschränkten Netzwerkzugriffs) auszuführen. Nachrichten mit hoher Priorität sollten im Allgemeinen zu einer Benutzerinteraktion mit Ihrer App oder ihren Benachrichtigungen führen.

Verwenden von Nachrichten mit hoher Priorität für Android

Nachrichten mit hoher Priorität auf Android sind für zeitkritische, für den Benutzer sichtbare Inhalte gedacht und sollten zu benutzerseitigen Benachrichtigungen führen. Wenn FCM ein Muster erkennt, bei dem Nachrichten nicht zu benutzerseitigen Benachrichtigungen führen, werden Ihre Nachrichten möglicherweise auf die normale Priorität herabgesetzt. FCM verwendet das Nachrichtenverhalten von 7 Tagen, um zu bestimmen, ob Nachrichten herabgesetzt werden sollen; es trifft diese Bestimmung unabhängig für jede Instanz Ihrer Anwendung. Wenn als Reaktion auf Nachrichten mit hoher Priorität Benachrichtigungen so angezeigt werden, dass sie für den Benutzer sichtbar sind, werden Ihre zukünftigen Nachrichten mit hoher Priorität nicht herabgesetzt. Dies gilt unabhängig davon, ob die Benachrichtigung vom FCM SDK über eine Benachrichtigungsnachricht oder eine vom Entwickler generierte Benachrichtigung über eine Datennachricht angezeigt wird.

Messung der Depriorisierung von Nachrichten auf Android

  • Individuelle Nachrichten. Bei der Zustellung können Sie feststellen, ob eine einzelne Nachricht depriorisiert wurde oder nicht, indem Sie ihre zugestellte Priorität aus getPriority() mit ihrer ursprünglichen Priorität aus getOriginalPriority() vergleichen.

  • Alle Nachrichten. Die FCM Aggregate Delivery Data API kann melden, welcher Prozentsatz aller Ihrer Nachrichten an Android depriorisiert wird. Einige Nachrichten können in den aggregierten Datenberichten weggelassen werden, aber insgesamt sollten sie einen globalen Überblick über die Depriorisierungsraten von Nachrichten geben. Weitere Informationen und Beispielcode zum Abfragen der API finden Sie in unserem Artikel zu aggregierten Lieferdaten . es kann auch vom API-Explorer aus erkundet werden .

Fehlerbehebung

  • Stellen Sie sicher, dass für Ihre App-Instanz Benachrichtigungen aktiviert sind. Wenn der Benutzer die Benachrichtigungsberechtigung für Ihre App deaktiviert hat, werden keine Ihrer Benachrichtigungen gepostet, daher werden Ihre Nachrichten herabgesetzt. Sie sollten sicherstellen, dass Benachrichtigungen aktiviert sind , bevor Sie Nachrichten mit hoher Priorität an eine Anwendungsinstanz senden.

  • Rufen Sie nicht zu Hause an, bevor Sie eine Benachrichtigung veröffentlicht haben. Da sich ein kleiner Teil der mobilen Android-Bevölkerung in Netzwerken mit hoher Latenz befindet, vermeiden Sie es, eine Verbindung zu Ihren Servern zu öffnen, bevor eine Benachrichtigung angezeigt wird. Ein Rückruf an den Server vor Ablauf der zulässigen Verarbeitungszeit kann für Benutzer in Netzwerken mit hoher Latenz riskant sein. Fügen Sie stattdessen den Benachrichtigungsinhalt in die FCM-Nachricht ein und zeigen Sie ihn sofort an. Wenn Sie zusätzliche In-App-Inhalte auf Android synchronisieren müssen, können Sie mit WorkManager eine Aufgabe planen, um dies im Hintergrund zu erledigen.