1. SlayNox, 21.06.2019 #1
    SlayNox

    SlayNox Threadstarter Ambitioniertes Mitglied

    Hallo Community,
    ich stoße bald auf das Problem das meine Payload in in einer FCM zu groß wird.
    Jetzt suche ich nach Möglichkeiten den Payload zu verkleinern.
    Dieser darf bis 4kb groß sein. Aktuell schwinge ich zwischen 3 und 4.
    Sie wird aus einer Xbase Anwendung heraus gesendet.
    Was haltet Ihr für den besten weg ?

    Liebe Grüße
     
  2. deek, 21.06.2019 #2
    deek

    deek Stammgast

    Teile der Payload in ein pull auslagern.
    Also ein push kommt rein mit den wichtigsten Teilen deiner Message, danach startet das Device per WorkManager einen Job, der die restlichen Daten von einer http Schnittstelle abruft.
     
  3. SlayNox, 21.06.2019 #3
    SlayNox

    SlayNox Threadstarter Ambitioniertes Mitglied

    Danke deek für die schnelle Antwort.
    Ich dachte eher an eine art base64 oder ähnliches. Oder hälst du das für keine gute Idee ?
     
  4. jogimuc, 21.06.2019 #4
    jogimuc

    jogimuc Erfahrenes Mitglied

    Hallo
    Base64 ist doch keine Komprimierung ober bin ich jetzt falsch. Ist doch nur dazu da um binäre Daten über ASCII 7bit Code zu schicken.
    Damit würden die Daten doch noch größer werden.
     
    SlayNox bedankt sich.
  5. deek, 21.06.2019 #5
    deek

    deek Stammgast

    Richtig, Base64 macht die Daten größer. Was du suchst ist ein Kompressionsalgorithmus, derer gibt es viele für verschiedene Zwecke. gzip, rar, jpeg, zopfli... kommt teilweise auf deine Daten an.
     
    SlayNox bedankt sich.
  6. SlayNox, 21.06.2019 #6
    SlayNox

    SlayNox Threadstarter Ambitioniertes Mitglied

    Kompressionsalgorithmus hört sich nach einem passenden Wort an.
    Ich habe lediglich Strings die übertragen werden.
    Die Anwendung empfängt Auftragsdaten wie Einsatzort, Fahrzeugtyp, Kennzeichen .... und einige mehr.
    Was für einen Kompressionsalgorithmus würdet Ihr empfehlen?
     
  7. jogimuc, 21.06.2019 #7
    jogimuc

    jogimuc Erfahrenes Mitglied

    Schreib doch mal eine Text Datei mit ähnlichen Daten wie du sie sendest. Und komprimieree sie mit Zip. Rar ... Dann siehst du auf dem PC was dir am meisten bringt.
     
  8. SlayNox, 21.06.2019 #8
    SlayNox

    SlayNox Threadstarter Ambitioniertes Mitglied

    Okay per RAR komme ich von 3,4 auf 1,6. Soweit so gut.
    Und diesen einfach als String einlesen und versenden? Kann mir nicht vorstellen das ihr das so meint:1f602:
    Das würde doch mit Sicherheit Charset fehler geben?
     
  9. jogimuc, 21.06.2019 #9
    jogimuc

    jogimuc Erfahrenes Mitglied

    Dazu Müsstest du schauen ob rar auch von
    Firebase unterstützt wird. Du wolltest ja erstmal wissen um wieviel die Daten kleiner werden.
    Natürlich muß der Server auch Damit umgehen können. Und die Daten erstmsl auspacken.
     
  10. SlayNox, 24.06.2019 #10
    SlayNox

    SlayNox Threadstarter Ambitioniertes Mitglied

    Gute Morgen :)
    Also ich sende Einsatzdaten von einem WindowsServer über Firebase per HTTP Post auf Mobile Endgeräte.
    Der Server brauch die Daten nicht auspacken, er soll Sie ja versenden. Ich glaube ich stehe auf dem Schlauch.
    Wenn einer auspacken müsste,dann das Mobile Endgerät. Aber ich verstehe aktuell nicht wie ich eine Rar über Firebase versenden soll?
    Liebe Grüße
     
  11. jogimuc, 24.06.2019 #11
    jogimuc

    jogimuc Erfahrenes Mitglied

    Wie deek schon sagte würde ich eine kurze Nachricht per fcm schicken und das Handy lädt sich anschließend die Daten entweder von einem HTML server. Oder aus den firebase storage runter sind das viele Daten die zu zusammen fassen willst dann kannst du die ja in zip oder rar komprimieren speichern. Das Handy lädt die Daten selber nach dem push und entpackt sie sich.
    Könntest die Daten ja auch in der DB speichern kommt natürlich darauf an viel das ist.
    Große Bilder zb gehören in den storage. Nicht in eine DB dann speichert man in der db nur den Link zum storage ab wo es runter geladen werden kann.

    Push Nachrichten nicht für große Datenmengen gedacht.
     
    Zuletzt bearbeitet: 24.06.2019
  12. SlayNox, 18.07.2019 #12
    SlayNox

    SlayNox Threadstarter Ambitioniertes Mitglied

    Hallo leute,
    habe das jetzt nachdem ich endlich mal etwas Luft habe, versucht umzusetzen.

    Bekomme jetzt aber leider immer wenn ich einen push verschicke folgenden Fehler:

    W/EnhancedIntentService: Service took too long to process intent: com.google.android.c2dm.intent.RECEIVE App may get closed.

    Es kommt auch kein Push mehr an. Außer wenn ich die Anwednung stoppe und wieder starte, dann geht ziemlich genau ein Push durch und danach
    habe ich wieder den Fehler. Muss ich eventuell einen WakeLock setzen? Die Nachricht selbst wird mit PRIORITY_HIGH geschickt.

    Hoffe es hat jemand eine Idee
    Liebe Grüße
     
  13. deek, 18.07.2019 #13
    deek

    deek Stammgast

    SlayNox bedankt sich.
  14. SlayNox, 22.07.2019 #14
    SlayNox

    SlayNox Threadstarter Ambitioniertes Mitglied

    Okay das werde ich mal versuchen. Ich verarbeite die Nachricht direkt im
    onMessageReceived vom FirebaseMessagingService.
    Wenn ich meine Logik herausnehme das kommen die Push auch regelmäßig an.
    Ich versuche mich mal daran. Sollte ich auf etwas bestimmtes achten?
     
  15. SlayNox, 24.07.2019 #15
    SlayNox

    SlayNox Threadstarter Ambitioniertes Mitglied

    Hay,
    also es funktioniert wunderbar. Vielen Dank für die Hilfe!
    Liebe Grüße!
     
    jogimuc und deek haben sich bedankt.
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Daten von Firebase mit Progressbar in RecyclerView laden Android App Entwicklung 21.10.2018
Firebasenachricht kommt nicht bei jedem Gerät an Android App Entwicklung 26.09.2018
Du betrachtest das Thema "Firebase Datamessage bald zu Groß" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.