Unity
[ Unity ] USE_AUTH_EMULATOR not set.
거두절me
2023. 11. 22. 00:28
에러: 파이어베이스 사용시 나오는 에러
해결: ContinueWith => ContinueWithOnMainThread
-- 파이어베이스 초기화가 된 쓰레드와 사용하려는 메서드의 쓰레드 위치가 달라서였던 것 같다.
- ContinueWith 메서드:
- 이 메서드는 비동기 작업이 완료된 후에 실행할 콜백을 정의합니다.
- 이 콜백은 작업이 완료되면 워커 스레드에서 호출됩니다. 이는 일반적으로 백그라운드 스레드에서 실행되기 때문에 Unity에서는 메인 스레드 외부에서 UI 변경과 같은 작업을 수행하면 문제가 발생할 수 있습니다.
- ContinueWithOnMainThread 메서드:
- 이 메서드는 ContinueWith와 비슷하지만, 콜백이 항상 메인 스레드에서 실행되도록 보장합니다.
- Unity에서는 주로 메인 스레드에서 UI와 관련된 작업을 수행해야 하기 때문에, Firebase 작업이 완료된 후에 메인 스레드에서 콜백을 실행하는 것이 중요합니다. ContinueWithOnMainThread는 이러한 요구 사항을 간단하게 처리합니다.
// ContinueWith 예제
someFirebaseOperation.ContinueWith(task => {
// 백그라운드 스레드에서 실행
Debug.Log("Firebase 작업 완료");
});
// ContinueWithOnMainThread 예제
someFirebaseOperation.ContinueWithOnMainThread(task => {
// 메인 스레드에서 실행
Debug.Log("Firebase 작업 완료 (메인 스레드)");
});