유니티 Firestore를 통한 데이터 저장 & 불러오기Unity/SDK2024. 1. 18. 22:12
Table of Contents
기능 구현
Firestore 초기화
FirebaseApp app = FirebaseApp.DefaultInstance;
FirebaseFirestore db = FirebaseFirestore.GetInstance(app);
유저 데이터 읽어오기
private void ReadUserDataFromFirestore()
{
DocumentReference docRef = db.Collection("users").Document("GuestID");
docRef.GetSnapshotAsync().ContinueWithOnMainThread(task =>
{
if (task.IsFaulted || task.IsCanceled)
{
Debug.Log("Failed to read data: " + task.Exception);
return;
}
DocumentSnapshot snapshot = task.Result;
if (snapshot.Exists)
{
// 데이터가 존재할 경우
Dictionary<string, object> data = snapshot.ToDictionary();
Debug.Log($"Player data Load : GuestID");
}
else
{
// 데이터가 존재하지 않을 경우
Debug.Log("Player data not found.");
CreateUserDataInFirestore();
}
});
}
- DB Collection을 통해 해당 컬렉션 가져온다. 해당 데이터가 존재하면 해당 데이터를 Dictionary로 캐싱하여 저장한다.
- 데이터가 존재하지 않으면 CreateUserDataInFirestore() 메서드를 통해 데이터 새로 생성
유저 데이터 생성하기
private void CreateUserDataInFirestore()
{
Dictionary<string, object> userData = new()
{
{ "username", "" },
{ "uid", "" },
{ "gold", 0 },
// 추후 추가할 필드값
};
db.Collection("users").Document(GuestID).SetAsync(userData).ContinueWithOnMainThread(task =>
{
if (task.IsFaulted || task.IsCanceled)
{
DebugNotice.Instance.Notice("Failed to create player data: " + task.Exception);
}
else
{
DebugNotice.Instance.Notice("Player data created successfully.");
}
});
}
- Dictionary를 통해 데이터 문서와 필드값들을 userData에 부여하여 해당 데이터를 Firestore에 생성한다.
구현 결과
'Unity > SDK' 카테고리의 다른 글
유니티 Firebase 랭킹 시스템 (0) | 2024.02.06 |
---|---|
유니티 Firebase를 활용한 데이터 시스템 (0) | 2024.01.29 |
유니티 FirestoreProperty를 사용한 C# 클래스 매핑 (0) | 2024.01.21 |
유니티 Firebase 구글 로그인 구현 (0) | 2024.01.15 |