1. Mitglieder surfen ohne Werbung auf Android-Hilfe.de! ✔ Jetzt kostenlos Mitglied in unserer Community werden.
Schlagworte:
  1. JoEntwickler, 18.02.2018 #1
    JoEntwickler

    JoEntwickler Threadstarter Android-Hilfe.de Mitglied

    Hallo,

    ich möchte eine Erinnerungsfunktion in meine App einbauen. Hierfür soll eine Notification angezeigt werden. Um diese Notification auszuführen soll von Firebase eine Nachricht gesendet werden mit der Art von Erinnerung. Jenachdem wird dann die Notification angezeigt.
    Ich habe zum Test eine Nachricht von der Firebaseconsole aus gesendet.
    Da wird aber auch eine Notification von Firebase angezeigt. Die gesendete Nachricht enthält aber nur Informationen mit denen der User nichts anfangen kann. Deshalb soll sie von der App noch verarbeitet werden (richtige Sprache etc.).

    Bei ein bisschen informieren bin ich darauf gekommen dass es zwei verschiedene Nachrichtentypen gibt.
    Was ich brauche ist eine "Data Message".

    Meine Frage ist jetzt wie sendet man die?
    Geht das über die Firebaseconsole?
    Wie macht man das mit Php?


    Ich hoffe mir kann jemand weiterhelfen

    Liebe Grüße
    Oliver Zeiss
     
  2. keen, 18.02.2018 #2
    keen

    keen Android-Hilfe.de Mitglied

    Hi Oliver,

    ich mir vor einer Weile auch mal Firebase angesehen, nur weil ich wissen wollte was es ist. Da habe ich ein Beispiel gesehen in dem deine Anwendung beschrieben wird.
    Du solltest auf der Webseite zu Firebase Hilfe finden. Ich bin mir nur nicht sicher, ob ich nur ein Video zu diesem Beispiel gesehen habe oder ob es dort eine Beispiel-App gab.
     
  3. swa00, 18.02.2018 #3
    swa00

    swa00 Moderator Team-Mitglied

  4. JoEntwickler, 18.02.2018 #4
    JoEntwickler

    JoEntwickler Threadstarter Android-Hilfe.de Mitglied

    Danke für den Link aber da habe ich auch schon nachgelesen.
    Eine Nachricht zu verschicken geht ja. Ich verstehe aber nicht so ganz wie man eine Data Message versendet.
    Ich möchte einfach nur dass der Code den ich geschrieben hab ausgeführt wird und keine Notification von der Libary erscheint.
     
  5. swa00, 18.02.2018 #5
    swa00

    swa00 Moderator Team-Mitglied

    Dann lass doch in dem Falle einfach deine Notification im FireBaseMessagingService weg.
    Was das bezwecken, soll ist mit allerdings rätselhaft


    Bsp
    Code:
    public class FCMMessageReceiverService extends FirebaseMessagingService
    {
        @Override
        public void onMessageReceived(RemoteMessage remoteMessage)
        {
         sendNotification(remoteMessage.getNotification().getBody());
        }
    
        private void sendNotification(String messageBody)
        {
          // hier keine Notify  und deine  eigene Routine
        }
    
    }
    Manifest
    Code:
      <service
                android:name=".FCMMessageReceiverService">
                <intent-filter>
                    <action android:name="com.google.firebase.MESSAGING_EVENT"/>
                </intent-filter>
            </service>
    
     
    Zuletzt bearbeitet: 18.02.2018
  6. JoEntwickler, 19.02.2018 #6
    JoEntwickler

    JoEntwickler Threadstarter Android-Hilfe.de Mitglied

    Sorry ich glaub ich habe es zu ungenau beschrieben.

    Die onMessageReceived Methode soll immer ausgeführt werden und dann meine Notification anzeigen.
    Das heißt egal ob die App im Vordergrund, Hintergrund oder garnicht läuft.

    Läuft die App nicht soll die sozusagen aufgeweckt werden.
     
  7. swa00, 19.02.2018 #7
    swa00

    swa00 Moderator Team-Mitglied

    Die OnMessageRecieved wird IMMER aufgerufen , das hast du nicht im Griff.
    Ich denke , dir fehlt noch die Begrifflichkeit , was ein Service ist.

    In der Receive Callback kannst du reinpacken , was du magst -
    Ob du eine Notify ausgibst, per Intent eine Activity startest, oder rosa wölkchen malst .
     
    Zuletzt bearbeitet: 19.02.2018
  8. JoEntwickler, 03.03.2018 #8
    JoEntwickler

    JoEntwickler Threadstarter Android-Hilfe.de Mitglied

    Wir haben es jetzt hinbekommen. Und zwar wollten wir ja eine Data Message senden.
    So eine Datamessage führt die onReceived() Methode immer aus. Es sollte ja auch so sein, dass die App aufgeweckt wird wenn sie nicht läuft.
    How to handle notification when app in background in Firebase

    Hier in dem Php Beispiel wird eine Datamessage versendet. Das mit den Tokens haben wir nicht getestet und das ist daher auskommentiert.
    PHP:
    <?php
        
    //Für einzelnes Gerät
        //$token = "C-l6T_a7HouUK****";
        //$registrationIds = array($token);
        
    $url "https://fcm.googleapis.com/fcm/send";
        
    //Server Schlüssel
        
    $serverKey "meinKey";
        
    $topic_adress "/topics/meinTopic";
        
    define'API_ACCESS_KEY'$serverKey );

        
    $msg = array(
            
    'myMessage'  => 'Das ist meine Nachricht.',
            
    'otherMessage'  => 'Meine andere Nachricht.',
            
    'time_to_live' => '600',
            
    'delivery_receipt_requested' => 'true'
        
    );

        
    $fields = array(
            
    //Für einzelne Geräte
            //'registration_ids'    => $registrationIds,
            
    'to' => $topic_adress,
            
    'data'            => $msg
        
    );
        
    $headers = array(
        
    //Web-Api-Schlüssel
          
    'Authorization: key=' $serverKey,
         
    'Content-Type: application/json'
        
    );

        
    $ch curl_init();

        
    curl_setopt$ch,CURLOPT_URL'https://android.googleapis.com/gcm/send' );

        
    curl_setopt$ch,CURLOPT_POSTtrue );

        
    curl_setopt$ch,CURLOPT_HTTPHEADER$headers );

        
    curl_setopt$ch,CURLOPT_RETURNTRANSFERtrue );

        
    curl_setopt$ch,CURLOPT_SSL_VERIFYPEERfalse );

        
    curl_setopt$ch,CURLOPT_POSTFIELDSjson_encode$fields ) );

        
    $result curl_exec($ch );

        
    curl_close$ch );

        echo 
    $result;
    ?>
    Um dann in der onReceived() Methode auf die Daten zuzugreifen führt man das hier aus:
    Code:
    if (remoteMessage.getFrom().equals("/topics/meinTopic")) {
        String message = remoteMessage.getData().get("myMessage");
        String message2 = remoteMessage.getData().get("otherMessage");
    }
    Das kann man theoretisch auch für irgendeine Aktion die die App im Hintergrund ausführen soll verwenden.

    Ich bedanke mich trotzdem für die Antworten und hoffe ich kann damit anderen Leuten helfen.

    Ein schönes Wochenende noch.
     
    swa00 bedankt sich.
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Daten von Firebase mit Progressbar in RecyclerView laden Android App Entwicklung Sonntag um 10:19 Uhr
Neigungssensor ansprechen und wert ausgeben in App Android App Entwicklung 14.10.2018
MIT AppInventor App erstellen um PDFs zu öffnen, problem Android App Entwicklung 10.10.2018
Kosten/ Aufwand für ne Android App für Vereinsaufgaben? Android App Entwicklung 08.10.2018
Welches Tut/Buch/... für meine App-Idee? Android App Entwicklung 01.10.2018
Firebasenachricht kommt nicht bei jedem Gerät an Android App Entwicklung 26.09.2018
App startet nicht - Wie, die Ursache finden? Android App Entwicklung 18.09.2018
Wert beim Start der App aus SharedPreferences auslesen Android App Entwicklung 10.09.2018
Datenschutzerklärung bei eigener App (ohne Erhebung von Daten) Android App Entwicklung 30.08.2018
alle 100 ms Daten über Bluetooth senden Android App Entwicklung 15.08.2018
Du betrachtest das Thema "Data Message von Firebase an die App senden" 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.