public async Task ReadPowerupsAsync()
        {
            try
            {
                await Task.Run(() =>
                {
                    var result = FireBaseReader.ReadAsync <PowerupEntity>(FireBaseSavePaths.PlayerPowerupLocation());

                    foreach (var entity in result.Result)
                    {
                        UserPowerupManager.Instance.Powerups.Add(new PowerupCollection()
                        {
                            Powerup = PowerupFactory.GetPowerup(entity.Name), Count = entity.Count
                        });
                    }
                });
            }
            catch (Exception ex)
            {
                DebugLogger.Instance.WriteException(ex);
            }
        }
        public void WritePowerups(List <PowerupCollection> powerups)
        {
            var data = new List <PowerupEntity>();

            foreach (PowerupCollection powerupCollected in powerups)
            {
                data.Add(new PowerupEntity()
                {
                    Name = powerupCollected.Powerup.GetType().Name, Count = powerupCollected.Count
                });
            }

            var toJson = JsonHelper.ToJson(data.ToArray());

            var result = System.Threading.Tasks.Task.Run(() => FireBaseDatabase.Database.Child(FireBaseSavePaths.PlayerPowerupLocation()).SetRawJsonValueAsync(toJson));

            if (result.IsCanceled || result.IsFaulted)
            {
                Debug.LogWarning(result.Exception);
            }
        }