본문 바로가기
🌐 유니티 (Unity)

Day 61 - Firebase에서 데이터 불러오고 업데이트

by shin0707 2024. 12. 23.
728x90
반응형

 

  • 주제

>>  데이터 불러오기

>>  데이터 업데이트

>>  업데이트 호출


  • 공부내용

저장된 데이터를 불러오고 수정하여 업데이트하는 방법을 다뤄보겠다.

 

1. 데이터 불러오기

Firestore에서 사용자 데이터를 가져오는 방법을 구현한다.

public void LoadGameData(string userId)
{
    FirebaseManager.Instance.Firestore
        .Collection("Users")
        .Document(userId)
        .GetSnapshotAsync()
        .ContinueWith(task =>
        {
            if (task.IsCompleted && task.Result.Exists)
            {
                GameData data = task.Result.ConvertTo<GameData>();
                Debug.Log($"불러온 데이터: 레벨 {data.CurrentLevel}, 점수 {data.TotalScore}");
                ApplyGameData(data);
            }
            else
            {
                Debug.LogWarning("사용자 데이터를 찾을 수 없음");
            }
        });
}

private void ApplyGameData(GameData data)
{
    // 데이터를 게임 상태에 반영
    Debug.Log($"데이터 반영 완료: {data.StageNumber} 단계 진행 중");
}

 

2. 데이터 업데이트

Firestore에 저장된 데이터를 업데이트하려면 기존 문서에 새로운 값을 적용하면 된다.

public void UpdateGameData(string userId, Dictionary<string, object> updates)
{
    FirebaseManager.Instance.Firestore
        .Collection("Users")
        .Document(userId)
        .UpdateAsync(updates)
        .ContinueWith(task =>
        {
            if (task.IsCompleted)
            {
                Debug.Log("게임 데이터 업데이트 완료");
            }
            else
            {
                Debug.LogError("게임 데이터 업데이트 실패: " + task.Exception);
            }
        });
}

 

3. 업데이트 호출

게임 중 변경된 정보를 업데이트할 때 위 메서드를 호출한다.

public void UpdateGame()
{
    string userId = FirebaseManager.Instance.User.UserId;

    Dictionary<string, object> updates = new Dictionary<string, object>
    {
        { "Coins", 200 },
        { "IsCompleted", true }
    };

    DataManager.Instance.UpdateGameData(userId, updates);
}

Firebase를 활용하면 데이터 저장, 불러오기, 업데이트가 간편해진다.

클라우드 기반으로 데이터를 안전하게 관리하며, 실시간으로 사용자 상태를 반영할 수 있다.
다음 게시글에서는 Firebase의 보안 규칙 설정과 최적화 방법에 대해 알아보겠다. 🛠️

728x90
반응형

loading