파이어베이스 기본 설정은 아래 문서의 2번까지 하고 오시면 됩니다.
https://ruen346.tistory.com/93
1. 데이터베이스 설정
프로젝트에 들어가서 빌드 -> Realtime Database 클릭
데이터베이스 만들기를 눌러줍니다
데이테베이스 위치를 설정해야 하는데 그렇게 중요한건 아니니 아무거나 선택하고
보안 규칙의 경우 변경이 가능하므로 여러 테스트를 위해 테스트 모드로 설정을 해줍니다
데이터베이스 추가로 인해 json이 변경이 되어 다시 다운받아야 한다
프로젝트 개요 우측 설정 버튼을 누르고 프로젝트 설정을 눌러준다
google-services.json 을 다운 받아 기존에 다운 받은 경로에 덮어준다
기존에 로그 구현할때는 Analytics를 사용하였는데
이번에는 그 아래에 있는 FirebaseDatabase.unitypackage를 더블클릭하여 임포트 해준다.
2. 코드 작성
이제 코드를 작성해 주어야 하는데 간단하게 저장과 로드를 할 수 있는 코드를 작성해보았다
using Firebase.Database;
using UnityEngine;
using UnityEngine.UI;
public class DatabaseManager : MonoBehaviour
{
public InputField emailField;
public InputField levelField;
public InputField goldField;
public Text text;
public string email;
public string level;
public string gold;
public class Data
{
public string level;
public string gold;
public Data(string level, string gold)
{
this.level = level;
this.gold = gold;
}
}
private DatabaseReference databaseReference;
private void Start()
{
databaseReference = FirebaseDatabase.DefaultInstance.RootReference;
}
public void OnClickSaveButton()
{
email = emailField.text.Trim();
level = levelField.text.Trim();
gold = goldField.text.Trim();
var data = new Data(level, gold);
string jsonData = JsonUtility.ToJson(data);
databaseReference.Child(email).SetRawJsonValueAsync(jsonData);
text.text = "저장";
}
public void OnClickLoadButton()
{
email = emailField.text.Trim();
databaseReference.Child(email).GetValueAsync().ContinueWith(task =>
{
if (task.IsCanceled)
{
text.text = "로드 취소";
}
else if (task.IsFaulted)
{
text.text = "로드 실패";
}
else
{
var dataSnapshot = task.Result;
string dataString = "";
foreach (var data in dataSnapshot.Children)
{
dataString += data.Key + " " + data.Value + "\n";
}
text.text = dataString;
}
});
}
}
이메일과 레벨, 골드를 입력할 수 있는 Field를 만들고 저장과 불러오기 버튼을 만들었다
정보 Text에는 불러오기 데이터를 출력을 시켜 주었다
테스트는 빌드를 하여야 정상적으로 가능하다
정상적으로 저장이 되는 것을 확인할 수 있다.
반응형
'가이드 > Unity, C#' 카테고리의 다른 글
유니티/C# 코루틴 사용중 제거 MissingReferenceException (0) | 2022.05.19 |
---|---|
Unity/C# string.indexof(string) is culture-specific (0) | 2022.05.12 |
유니티 파이어베이스 이메일 회원가입/로그인 (0) | 2022.03.20 |
유니티/C# 리스트(list) 오름차순, 내림차순 정렬 (0) | 2022.03.15 |
유니티/C# InvalidOperationException: Collection was modified; enumeration operation may not execute. 오류 해결법 (0) | 2022.03.14 |
댓글