using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Firebase;
using Firebase.Database;
using Firebase.Extensions;
public class MakeHintManager : MonoBehaviour
{
DatabaseReference dataReference;
void Start()
{
dataReference = FirebaseDatabase.DefaultInstance.RootReference;
dataReference.ValueChanged += ValueChanged;
}
void ValueChanged(object data,ValueChangedEventArgs args)
{
if (args.DatabaseError != null)
{
Debug.Log(args.DatabaseError.Message);
}
else
{
Debug.Log("데이터 변화 감지");
}
}
}
앞선 포스팅을 따라서 firebase database에 접근을 한 경우, 만약 데이터베이스상에서 변화가 생기면 Value Change라는 함수가 실행되는 모습을 확인할 수 있다.
만약, 전체 데이터베이스가 아니라 특정 이름값 자식들 부터의 데이터 변화를 감지하고 싶다면,
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Firebase;
using Firebase.Database;
using Firebase.Extensions;
public class MakeHintManager : MonoBehaviour
{
DatabaseReference dataReference;
void Start()
{
dataReference = FirebaseDatabase.DefaultInstance.GetReference("specific");//이 노드의 child들이 바뀔때 만 감지
dataReference.ValueChanged += ValueChanged;
}
void ValueChanged(object data,ValueChangedEventArgs args)
{
if (args.DatabaseError != null)
{
Debug.Log(args.DatabaseError.Message);
}
else
{
Debug.Log("데이터 변화 감지");
}
}
}
이런 식으로 코드를 짜주면, specific이라는 이름값 하위의 값들이 변할 때에만 ValueChange함수가 호출되는것을 볼 수 있다.
이와 비슷한 여러 함수가 있는데, 이는 Firebase 공식 문서에 잘 정리되어 있다.
ValueChanged 외에 필요한 상황에서 필요한 event listener들을 위와 같은 방식으로 넣어주면 실시간으로 db상에서 데이터가 변할 떄를 감지할 수 있다.
'유니티' 카테고리의 다른 글
[유니티] Firebase Database를 이용한 회원가입, 로그인 구현 (0) | 2022.09.14 |
---|---|
[유니티] Firebase Database에 저장된 값 정렬하기 , 문제 해결 (0) | 2022.09.11 |
[유니티] Firebase Database를 사용하여 저장된 데이터를 불러오기 (0) | 2022.09.09 |
[유니티] Firebase Database를 사용하여 데이터를 저장해보기 (0) | 2022.09.09 |
[유니티] 일정한 속도로 회전하는 오브젝트 만들기 (0) | 2022.05.05 |