#Region  Service Attributes
    #StartAtBoot: false
#End Region
Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    Private fm As FirebaseMessaging
    Dim Thread1 As Thread
End Sub
Sub Service_Create
  
    fm.Initialize("fm")
    Thread1.Initialise("Thread1")
  
End Sub
Public Sub subscribeToTopic
    fm.SubscribeToTopic("DebugTopic")
    Log ($"Token : ${fm.Token}"$)
  
End Sub
Public Sub removeToken()
  
    Dim args(0) As Object
    Thread1.Name = "B4A Thread 1"
    Thread1.Start(Null, "ThreadSub1", args)
  
End Sub
Sub ThreadSub1
    Dim jo As JavaObject
    Try
        jo = jo.InitializeStatic("com.google.firebase.iid.FirebaseInstanceId").RunMethod("getInstance", Null)
        jo.RunMethod("deleteInstanceId", Null)
    Catch
        Log(LastException)
    End Try
End Sub
Sub Thread1_Ended(fail As Boolean, error As String) 'An error or Exception has occurred in the Thread
  
    If Not(fail) Then
        Log ($"Thread1 Ended with error : ${error}"$)
    Else
        Log ("Thread1 Ended without error")
    End If
End Sub
Sub fm_MessageArrived (Message As RemoteMessage)
   Log("Message arrived")
   Log($"Message data: ${Message.GetData}"$)
   Dim n As Notification
   n.Initialize
   n.Icon = "icon"
   n.SetInfo(Message.GetData.Get("title"), Message.GetData.Get("body"), Main)
   n.Notify(1)
End Sub
Sub Service_Destroy
End Sub