Unity

[ Unity ] USE_AUTH_EMULATOR not set.

거두절me 2023. 11. 22. 00:28

에러: 파이어베이스 사용시 나오는 에러
해결: ContinueWith => ContinueWithOnMainThread
  -- 파이어베이스 초기화가 된 쓰레드와 사용하려는 메서드의 쓰레드 위치가 달라서였던 것 같다.

 

  1. ContinueWith 메서드:
    • 이 메서드는 비동기 작업이 완료된 후에 실행할 콜백을 정의합니다.
    • 이 콜백은 작업이 완료되면 워커 스레드에서 호출됩니다. 이는 일반적으로 백그라운드 스레드에서 실행되기 때문에 Unity에서는 메인 스레드 외부에서 UI 변경과 같은 작업을 수행하면 문제가 발생할 수 있습니다.
  2. ContinueWithOnMainThread 메서드:
    • 이 메서드는 ContinueWith와 비슷하지만, 콜백이 항상 메인 스레드에서 실행되도록 보장합니다.
    • Unity에서는 주로 메인 스레드에서 UI와 관련된 작업을 수행해야 하기 때문에, Firebase 작업이 완료된 후에 메인 스레드에서 콜백을 실행하는 것이 중요합니다. ContinueWithOnMainThread는 이러한 요구 사항을 간단하게 처리합니다.

// ContinueWith 예제
someFirebaseOperation.ContinueWith(task => {
    // 백그라운드 스레드에서 실행
    Debug.Log("Firebase 작업 완료");
});

// ContinueWithOnMainThread 예제
someFirebaseOperation.ContinueWithOnMainThread(task => {
    // 메인 스레드에서 실행
    Debug.Log("Firebase 작업 완료 (메인 스레드)");
});