question

truegame0624@gmail.com avatar image
truegame0624@gmail.com asked

PlayFabClientAPI.GetUserData User data is not partially loaded.

Hello, I'm sorry you're busy, but I really need help so I'm writing a question.

It seems that some data is not loaded during the process of loading user data. During the saving process, an error called DataUpdateRateExceeded occurs. Is this related to this? Or is there a problem with my loading code and I would like to find an answer.

Load does not specify a separate path, so all of the user's title data is loaded and the data is parsed based on the Dictionary Key value.

Below I am attaching my load code, load failure log, and a picture of "GetUserData OperationCanceled" from the dashboard.

Please let me know if there is anything I can provide for additional clues. We desperately need help.

I'm sorry that I used Google Translator because my English is not good.

  /*플레이어 모든 데이터 로드 코루틴*/
     private IEnumerator LoadAllData_Coroutine()
     {
         isDataLoad = false;
         var request = new GetUserDataRequest() { PlayFabId = PlayFabManager.instance.playfab_id, Keys = null };
         Dictionary<string, UserDataRecord> data_dict = new Dictionary<string, UserDataRecord>();
    
         //네트워크 연결 확인
         yield return new WaitUntil(() => (Application.internetReachability == NetworkReachability.NotReachable) == false);
    
         PlayFabClientAPI.GetUserData(request,
             result =>
             {
                 if (result.Data == null)
                 {
                     LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData_Coroutine Fail - Not Have Data");
                     Debug.Log("SaveLoadManager - LoadAllData_Coroutine Fail - Not Have Data");
                 }
                 else
                 {
                     data_dict = result.Data;
                     Debug.Log("SaveLoadManager - LoadAllData_Coroutine : Data Load Success");
                 }
                 isDataLoad = true;
             },
             error =>
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData_Coroutine Error - " + error.GenerateErrorReport());
                 Debug.Log("SaveLoadManager - LoadAllData_Coroutine Error - " + error.GenerateErrorReport());
                 isDataLoad = true;
             });
         yield return new WaitUntil(() => isDataLoad == true);
    
         isDataLoad = false;
         LoadReceiptData();
    
         //데이터 로드 확인
         yield return new WaitUntil(() => isDataLoad == true);
    
         if (tutorialData.isTutorialFinish)
         {
    
             //플레이어 데이터 로드
             if (data_dict.ContainsKey(PLAYER_DATA_KEY))
             {
                 PlayerManager.instance.player.playerData = JsonMapper.ToObject<PlayerData>(data_dict[PLAYER_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + PLAYER_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + PLAYER_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + PLAYER_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             //길드 정보 데이터 로드
             if (data_dict.ContainsKey(GUILD_DATA_KEY))
             {
                 PlayerManager.instance.player.guild_info = JsonMapper.ToObject<GuildInfo>(data_dict[GUILD_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + GUILD_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + GUILD_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + GUILD_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             //의뢰 클리어 데이터 로드
             if (data_dict.ContainsKey(QUEST_CLEAR_DATA_KEY))
             {
                 PlayerManager.instance.player.questClear_Data = JsonMapper.ToObject<QuestClearData>(data_dict[QUEST_CLEAR_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + QUEST_CLEAR_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + QUEST_CLEAR_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + QUEST_CLEAR_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             //에피소드 데이터 로드
             if (data_dict.ContainsKey(EVENT_DATA_KEY))
             {
                 PlayerManager.instance.player.event_Data = JsonMapper.ToObject<EventData>(data_dict[EVENT_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + EVENT_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + EVENT_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + EVENT_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             //해금 데이터 로드
             if (data_dict.ContainsKey(UNLOCK_INFO_DATA_KEY))
             {
                 PlayerManager.instance.player.unlock_info = JsonMapper.ToObject<UnlockInfo>(data_dict[UNLOCK_INFO_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + UNLOCK_INFO_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + UNLOCK_INFO_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + UNLOCK_INFO_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             //미션 데이터 로드
             if (data_dict.ContainsKey(MISSION_DATA_KEY))
             {
                 PlayerManager.instance.player.missionData = JsonMapper.ToObject<MissionData>(data_dict[MISSION_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + MISSION_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + MISSION_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + MISSION_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             //가구 인벤토리 데이터 로드
             if (data_dict.ContainsKey(FURNITURE_DATA_KEY))
             {
                 PlayerManager.instance.player.inven.furni_inven.save_data = JsonMapper.ToObject<FurnitureSaveData>(data_dict[FURNITURE_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + FURNITURE_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + FURNITURE_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + FURNITURE_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             //의뢰 데이터 로드
             if (data_dict.ContainsKey(QUEST_DATA_KEY))
             {
                 PlayerManager.instance.player.inven.quest_List = JsonMapper.ToObject<List<Quest>>(data_dict[QUEST_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + QUEST_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + QUEST_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + QUEST_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             //용병 인벤토리 데이터 로드
             if (data_dict.ContainsKey(BRAVE_DATA_KEY))
             {
                 PlayerManager.instance.player.inven.brave_inven.saveDataList = JsonMapper.ToObject<List<CharacterSaveData>>(data_dict[BRAVE_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + BRAVE_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + BRAVE_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + BRAVE_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             //음식 데이터 로드
             if (data_dict.ContainsKey(FOOD_DATA_KEY))
             {
                 PlayerManager.instance.player.inven.food_inven.foodList = JsonMapper.ToObject<List<FoodData>>(data_dict[FOOD_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + FOOD_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + FOOD_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + FOOD_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             //아이템 데이터 로드
             if (data_dict.ContainsKey(ITEM_DATA_KEY))
             {
                 PlayerManager.instance.player.inven.item_List = JsonMapper.ToObject<List<ItemData>>(data_dict[ITEM_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + ITEM_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + ITEM_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + ITEM_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             //선물 데이터 로드
             if (data_dict.ContainsKey(PRESENT_DATA_KEY))
             {
                 PlayerManager.instance.player.inven.present_inven = JsonMapper.ToObject<PresentInventory>(data_dict[PRESENT_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + PRESENT_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + PRESENT_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + PRESENT_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             //무기 데이터 로드
             if (data_dict.ContainsKey(WEAPON_DATA_KEY))
             {
                 PlayerManager.instance.player.inven.gear_inven.weaponSaveDataList = JsonMapper.ToObject<List<WeaponSaveData>>(data_dict[WEAPON_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + WEAPON_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + WEAPON_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + WEAPON_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             //아머 데이터 로드
             if (data_dict.ContainsKey(ARMOR_DATA_KEY))
             {
                 PlayerManager.instance.player.inven.gear_inven.armorSaveDataList = JsonMapper.ToObject<List<ArmorSaveData>>(data_dict[ARMOR_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + ARMOR_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + ARMOR_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + ARMOR_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             //헬멧 데이터 로드
             if (data_dict.ContainsKey(HELMET_DATA_KEY))
             {
                 PlayerManager.instance.player.inven.gear_inven.helmetSaveDataList = JsonMapper.ToObject<List<ArmorSaveData>>(data_dict[HELMET_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + HELMET_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + HELMET_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + HELMET_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             //신발 데이터 로드
             if (data_dict.ContainsKey(SHOES_DATA_KEY))
             {
                 PlayerManager.instance.player.inven.gear_inven.shoesSaveDataList = JsonMapper.ToObject<List<ArmorSaveData>>(data_dict[SHOES_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + SHOES_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + SHOES_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + SHOES_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             if (data_dict.ContainsKey(BYPRODUCT_DATA_KEY))
             {
                 PlayerManager.instance.player.inven.byproduct_List = JsonMapper.ToObject<List<ByproductData>>(data_dict[BYPRODUCT_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + BYPRODUCT_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + BYPRODUCT_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + BYPRODUCT_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             if (data_dict.ContainsKey(HOUSE_FURNITURE_DATA_KEY))
             {
                 PlayerManager.instance.player.inven.house_furni_List = JsonMapper.ToObject<List<HouseFurniData>>(data_dict[HOUSE_FURNITURE_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + HOUSE_FURNITURE_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + HOUSE_FURNITURE_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + HOUSE_FURNITURE_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             if (data_dict.ContainsKey(ACHIVEMENT_COUNT_DATA_KEY))
             {
                 PlayerManager.instance.player.achivmentCountData = JsonMapper.ToObject<AchivementCountData>(data_dict[ACHIVEMENT_COUNT_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + ACHIVEMENT_COUNT_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + ACHIVEMENT_COUNT_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + ACHIVEMENT_COUNT_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             if (data_dict.ContainsKey(ACHIVEMENT_DATA_KEY))
             {
                 PlayerManager.instance.player.achivementData_List = JsonMapper.ToObject<List<AchivementData>>(data_dict[ACHIVEMENT_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + ACHIVEMENT_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + ACHIVEMENT_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + ACHIVEMENT_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             if (data_dict.ContainsKey(TITLE_DATA_KEY))
             {
                 PlayerManager.instance.player.inven.title_List = JsonMapper.ToObject<List<TitleData>>(data_dict[TITLE_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + TITLE_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + TITLE_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + TITLE_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             if (data_dict.ContainsKey(COLLECTION_DATA_KEY))
             {
                 PlayerManager.instance.player.inven.collection_inven = JsonMapper.ToObject<CollectionInventory>(data_dict[COLLECTION_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + COLLECTION_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + COLLECTION_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + COLLECTION_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             if (data_dict.ContainsKey(INVENTORYCOUNTINFO_DATA_KEY))
             {
                 PlayerManager.instance.player.inven.invenCountInfo = JsonMapper.ToObject<InventoryCountInfo>(data_dict[INVENTORYCOUNTINFO_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + INVENTORYCOUNTINFO_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + INVENTORYCOUNTINFO_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + INVENTORYCOUNTINFO_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             if (data_dict.ContainsKey(ADMOB_DATA_KEY))
             {
                 PlayerManager.instance.player.admobData = JsonMapper.ToObject<AdmobData>(data_dict[ADMOB_DATA_KEY].Value);
                 Debug.Log("SaveLoadManager - LoadAllData :" + ADMOB_DATA_KEY + " Data Load Success");
             }
             else
             {
                 LogManager.instance.SaveLogMessage("SaveLoadManager - LoadAllData " + ADMOB_DATA_KEY + " Fail : Not Have Key or Data");
                 Debug.Log("SaveLoadManager - LoadAllData " + ADMOB_DATA_KEY + " Fail : Not Have Key or Data");
             }
    
             //백업 데이터 생성
             if (PlayerManager.instance.player.playerData.nickname != "")
             {
                 if(data_dict.ContainsKey(BACKUP_DATA_KEY))
                 {
                     PlayerBackUpData backUpData = JsonMapper.ToObject<PlayerBackUpData>(data_dict[BACKUP_DATA_KEY].Value);
                     Debug.Log("SaveLoadManager - LoadAllData :" + BACKUP_DATA_KEY + " Data Load Success");
    
                     StartCoroutine("BackUpCheckCoroutine", backUpData);
                     yield return new WaitUntil(() => isBackUpFinish == true);
                 }
                 else
                 {
                     SaveBackUpData();
                     Debug.Log("SaveLoadManager - LoadAllData " + BACKUP_DATA_KEY + " Fail : Not Have Key or Data");
                     Debug.Log("SaveLoadManager - Create BackUp Data");
                     yield return new WaitUntil(() => PlayFabManager.instance.isSaved == true);
                 }
             }
    
             string logmessage = LogManager.instance.LoadLogMessage();
             if(logmessage != "")
             {
                 logmessage = logmessage + "/" + DateTime.Now.ToLocalTime().ToString();
                 Dictionary<string, string> data = new Dictionary<string, string>();
                 data.Add(ERROR_LOG_DATA_KEY, JsonMapper.ToJson(new { ErrorLog = logmessage }));
                 PlayFabManager.instance.UpdateData(data, UserDataPermission.Private);
                 yield return new WaitUntil(() => PlayFabManager.instance.isSaved == true);
                 LogManager.instance.DeleteLogMessage();
             }
         }
    
         isLoading = false;
         yield return null;
     }

6795-faillog.png

6796-apilog.png

apisunity3d
faillog.png (135.1 KiB)
apilog.png (15.0 KiB)
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

0 Answers

·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.