Mitglieder surfen ohne Werbung: Jetzt kostenlos registrieren!

Firebase Datamessage bald zu Groß

  • 14 Antworten
  • Neuester Beitrag
Diskutiere Firebase Datamessage bald zu Groß im Android App Entwicklung im Bereich Betriebssysteme & Apps.
S

SlayNox

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
 
D

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.
 
S

SlayNox

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 ?
 
J

jogimuc

Stammgast
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.
 
D

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.
 
S

SlayNox

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?
 
J

jogimuc

Stammgast
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.
 
S

SlayNox

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?
 
J

jogimuc

Stammgast
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.
 
S

SlayNox

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
 
J

jogimuc

Stammgast
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:
S

SlayNox

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
 
S

SlayNox

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?
 
S

SlayNox

Ambitioniertes Mitglied
Hay,
also es funktioniert wunderbar. Vielen Dank für die Hilfe!
Liebe Grüße!
 
Ähnliche Themen - Firebase Datamessage bald zu Groß Antworten Datum
0