Firebase-meddelelser med billede i Android

Hej venner, jeg kom tilbage med et nyt indlæg.
I dette indlæg skal vi lære at håndtere meddelelser med et billede fra firebase-konsollen.

Her er et par trin, som jeg tror, ​​vi kan springe over.

  • Log ind / tilmeld dig firebasen.
  • Opsæt dit projekt i Android-studiet.
  • Opret et projekt på firebase-konsollen.
  • Føj firebase til dit projekt.

Tilføj afhængighed (i “app / construct.gradle”)

implementation 'com.google.firebase:firebase-messaging:20.zero.zero'


Opret en klasse, der udvides FirebaseMessangingService i mit tilfælde er det “MyFirebaseMessangingService”

Din klasse ser sådan ud i starten

class MyFirebaseMessangingService : FirebaseMessagingService() 
   override enjoyable onNewToken(p0: String) 
    override enjoyable onMessageReceived(remoteMessage: RemoteMessage) 

onNewToken“: Funktion kaldes, når firebase opretter / opdaterer et unikt token til en bestemt bruger.
Dette kan opdateres med jævne mellemrum, geninstallere appen, rydde knowledge osv.

onMessageReceived“: Dette er en speciel funktion, der kaldes, når der modtages en besked fra firebase-konsollen eller af din apps backend. I denne funktion skal du oprette og vise underretningen.
Bemærk: Denne funktion udløses kun, når din app er i forgrundstilstand.

Q. Hvad sker der? når appen er i baggrunden & hvordan vises underretning i den tilstand?
Ans: Firebase håndterer sig selv og viser notifikationen, og ved at klikke på denne meddelelse åbnes den allerførste aktivitet i dine projekter som Splash eller Dashboard.


Føj Firebase-messaging-tjenesten til Manifest.xml inde i applikationskoden.

<service
    android:title=".java.MyFirebaseMessagingService"
    android:exported="false">
    <intent-filter>
        <motion android:title="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>


Vis underretning (først obtain billede til bitmap og derefter vis underretning)

non-public enjoyable downloadImage(notification: RemoteMessage.Notification?) 
        Observable.fromCallable(object : Callable<Bitmap?> ).subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(object : Observer<Bitmap?> 
                    override enjoyable onComplete() 

                    

                    override enjoyable onSubscribe(d: Disposable) 

                    

                    override enjoyable onNext(t: Bitmap) 
                        showNotification(notification,t)
                    

                    override enjoyable onError(e: Throwable) 

                )

    

Bemærk: Jeg brugte RxJava her til trådning, du kan bruge enhver metode, du ønsker.


Vis underretningen

non-public enjoyable showNotification(notification: RemoteMessage.Notification?, picture: Bitmap?) 

Her er hele filkoden:


import android.app.Notification
import android.app.NotificationChannel
import android.app.NotificationManager
import android.app.PendingIntent
import android.content material.Context
import android.content material.Intent
import android.graphics.Bitmap
import android.os.Construct
import android.util.Log
import com.bumptech.glide.Glide
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage
import com.techpaliyal.uniquegallery.R
import com.techpaliyal.uniquegallery.actions.MainActivity
import io.reactivex.Observable
import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
import java.util.concurrent.Callable

class MyFirebaseMessangingService : FirebaseMessagingService()

Hvis du har spørgsmål / tvivl eller suggestions, bedes du kommentere nedenfor.