public void OnDataChange(DataSnapshot snapshot)
        {
            if (!snapshot.Exists())
            {
                return;
            }

            string ride_id = snapshot.Child("ride_id").Value.ToString();

            if (ride_id != "waiting" && ride_id != "timeout" && ride_id != "cancelled")
            {
                //Ride Assigned
                RideAssigned?.Invoke(this, new RideAssignedIDEventArgs {
                    RideId = ride_id
                });
            }
            else if (ride_id == "timeout")
            {
                // Ride Timeout
                RideTimedOut?.Invoke(this, new TimeoutMessageArgs {
                    Message = "Ride timeout"
                });
            }
            else if (ride_id == "cancelled")
            {
                //ride cancelled

                RideCancelled?.Invoke(this, new RideCancelledArgs {
                    ShowWhy = null
                });
            }
        }
        public void OnDataChange(DataSnapshot snapshot)
        {
            if (snapshot.Value != null)
            {
                string rideId = snapshot.Child("ride_id").Value.ToString();

                if (rideId != "waiting" && rideId != "timeout" && rideId != "cancelled")
                {
                    RideAssigned?.Invoke(this, new RideAssignedIdEventArgs {
                        RideId = rideId
                    });
                }
                else if (rideId == "timeout")
                {
                    RideTimedOut?.Invoke(this, new EventArgs());
                }
                else if (rideId == "cancelled")
                {
                    RideCancelled?.Invoke(this, new EventArgs());
                }
            }
        }