Firebase Database는 Firebase에서 제공하는 NoSQL 데이터베이스입니다. NoSQL 데이터베이스는 관계형 데이터베이스와 달리, 데이터를 행과 열로 저장하지 않고, 키-값 쌍으로 저장합니다.
Firebase Database에 데이터를 저장하는 방법은 여러 가지가 있습니다. 그 중 대표적인 메서드는 다음과 같습니다.
- SetRawJsonValueAsync
- UpdateChildrenAsync
- SetValueAsync
- SetPriorityAsync
SetRawJsonValueAsync
SetRawJsonValueAsync() 메서드는 지정된 경로에 JSON 값을 저장하는 메서드입니다.
이 메서드는 지정된 경로에 JSON 값을 저장합니다. JSON 값은 키-값 쌍으로 구성된 객체 또는 배열이 될 수 있습니다.
using Firebase.Database;
public class MyClass {
public void SetData() {
// DatabaseReference 객체를 참조합니다.
DatabaseReference databaseReference = FirebaseDatabase.GetInstance().GetReference();
// JSON 값을 생성합니다.
Dictionary<string, object> data = new Dictionary<string, object>();
data["name"] = "John Doe";
data["age"] = 30;
// JSON 값을 저장합니다.
databaseReference.SetRawJsonValueAsync(data);
}
}
이 예제에서는 SetData() 메서드에서 DatabaseReference 객체를 참조합니다. 그리고 DatabaseReference 객체의 SetRawJsonValueAsync() 메서드를 사용하여 다음과 같은 JSON 값을 저장합니다.
{
"name": "John Doe",
"age": 30
}
UpdateChildrenAsync
UpdateChildrenAsync() 메서드는 지정된 경로에 자식 값을 업데이트하는 메서드입니다.
이 메서드는 지정된 경로의 자식 값을 업데이트합니다. 업데이트할 값은 키-값 쌍으로 구성된 객체 또는 배열이 될 수 있습니다.
예제
using Firebase.Database;
public class MyClass {
public void UpdateData() {
// DatabaseReference 객체를 참조합니다.
DatabaseReference databaseReference = FirebaseDatabase.GetInstance().GetReference();
// 업데이트할 데이터를 생성합니다.
Dictionary<string, object> updateData = new Dictionary<string, object>();
updateData["age"] = 31;
// 데이터를 업데이트합니다.
databaseReference.UpdateChildrenAsync(updateData);
}
}
이 예제에서는 UpdateData() 메서드에서 DatabaseReference 객체를 참조합니다. 그리고 DatabaseReference 객체의 UpdateChildrenAsync() 메서드를 사용하여 age 값을 31로 업데이트합니다.
SetValueAsync
SetValueAsync() 메서드는 지정된 경로에 값을 저장하는 메서드입니다.
이 메서드는 지정된 경로에 값을 저장합니다. 값은 문자열, 숫자, 불리언 값, 배열 또는 객체가 될 수 있습니다.
using Firebase.Database;
public class MyClass {
public void SetValue() {
// DatabaseReference 객체를 참조합니다.
DatabaseReference databaseReference = FirebaseDatabase.GetInstance().GetReference();
// 값을 생성합니다.
string value = "Hello, world!";
// 값을 저장합니다.
databaseReference.SetValueAsync(value);
}
}
이 예제에서는 SetValue() 메서드에서 DatabaseReference 객체를 참조합니다.
SetPriorityAsync
SetPriorityAsync() 메서드는 지정된 경로에 데이터의 우선 순위를 설정하는 메서드입니다.
이 메서드는 지정된 경로에 데이터의 우선 순위를 설정합니다. 우선 순위는 0에서 255 사이의 값으로 설정할 수 있습니다. 값이 높을수록 우선 순위가 높습니다.
using Firebase.Database;
public class MyClass {
public void SetPriority() {
// DatabaseReference 객체를 참조합니다.
DatabaseReference databaseReference = FirebaseDatabase.GetInstance().GetReference();
// 값을 생성합니다.
int priority = 100;
// 우선 순위를 설정합니다.
databaseReference.SetPriorityAsync(priority).Wait();
}
}
이 예제에서는 SetPriority() 메서드에서 DatabaseReference 객체를 참조합니다. 그리고 DatabaseReference 객체의 SetPriorityAsync() 메서드를 사용하여 데이터의 우선 순위를 100으로 설정합니다.
메서드의 차이점
SetRawJsonValueAsync(), UpdateChildrenAsync(), SetValueAsync() 메서드의 차이점은 다음과 같습니다.
메서드 | 차이점 |
SetRawJsonValueAsync() | 지정된 경로에 JSON 값을 저장합니다. |
UpdateChildrenAsync() | 지정된 경로의 자식 값을 업데이트합니다. |
SetValueAsync() | 지정된 경로에 값을 저장합니다. |
SetPriorityAsync() 메서드는 다른 메서드와 달리 데이터의 우선 순위를 설정하는 메서드입니다.
주의 사항
Firebase Database는 NoSQL 데이터베이스이기 때문에, 데이터의 구조가 정해져 있지 않습니다. 따라서, 데이터를 저장할 때에는 다음과 같은 사항에 유의해야 합니다.
- 데이터의 경로를 잘 설정해야 합니다.
- 데이터의 형식을 올바르게 지정해야 합니다.
- 데이터의 중복을 피해야 합니다.
Firebase Database를 사용하면 다양한 종류의 데이터를 효율적으로 저장할 수 있습니다.
'Unity > Firebase' 카테고리의 다른 글
데이터를 가져올 때 키 값이 존재하는지 확인하는 방법 (0) | 2024.01.08 |
---|---|
ValueChanged 이벤트를 사용하여 실시간 데이터 업데이트 (0) | 2023.12.15 |
Windows 환경에서 Firebase 사용 시 발생하는 Unable to resolve reference 'UnityEditor.iOS.Extensions.Xcode' 에러 해결 (0) | 2023.12.03 |
Firebase 토큰을 가져오는 방법 (0) | 2023.11.15 |
Firebase의 DataSnapshot에 대해서 (0) | 2023.10.12 |