public void Dispose()
            {
                object typeFromHandle = typeof(FirebaseMessaging.Listener);

                lock (typeFromHandle)
                {
                    if (FirebaseMessaging.Listener.listener == this)
                    {
                        FirebaseMessaging.SetListenerCallbacks(null, null);
                        FirebaseMessaging.Listener.listener = null;
                        this.app = null;
                    }
                }
            }
        internal static void CreateOrDestroyListener()
        {
            object typeFromHandle = typeof(FirebaseMessaging.Listener);

            lock (typeFromHandle)
            {
                bool flag  = FirebaseMessaging.MessageReceivedInternal != null;
                bool flag2 = FirebaseMessaging.TokenReceivedInternal != null;
                if (flag || flag2)
                {
                    FirebaseMessaging.Listener.Create();
                }
                else
                {
                    FirebaseMessaging.Listener.Destroy();
                }
                FirebaseMessaging.SetListenerCallbacksEnabled(flag, flag2);
                if (flag || flag2)
                {
                    FirebaseMessaging.SendPendingEvents();
                }
            }
        }
 private Listener()
 {
     FirebaseMessaging.SetListenerCallbacks(this.messageReceivedDelegate, this.tokenReceivedDelegate);
 }
 public static void Unsubscribe(string topic)
 {
     FirebaseMessaging.SubscribeAsync(topic);
 }