여기 Unity에서 Firebase를 시작합니다. 데이터베이스에서 데이터를 가져 오는 방법을 알아 냈습니다. 그러나 문제는 데이터를 얻기 위해 내가 만들고있는 작업 외부에서 가치를 얻을 수 없다는 것입니다. 단지입니다작업 범위 밖에서 변수 값을 가져올 수 없습니다. Firebase unity
은 "Router.PlayerMoney : 여기
은 내가 사용하고있는 기능, 그래서 너희들은 지금 무엇을 말 하려는지 알고 :public double GetBankBalance()
{
double bankBalance = 0;
Router.PlayerMoney("ymO6Hyl8WjbuPGaWV7FksbVABGb2").GetValueAsync().ContinueWith(task =>
{
if (task.IsFaulted)
{
Debug.Log("Error in GetBankBalance()");
}
else if (task.IsCompleted)
{
DataSnapshot snapshot = task.Result;
bankBalance = Convert.ToDouble(snapshot.Child("bankBalance").Value);
}
Debug.Log(bankBalance);
SetBankBalance(bankBalance);
});
Debug.Log(bankBalance);
return bankBalance;
}
내가 그것을 조금 설명하겠습니다 여기에있는 문제는 Debug.Log (bankBalance)가 올바른 값을 반환하지만 BankBalance에 값을 주었을 때 그 값이 0 인 것입니다 (내 반환 값 위에있는 Debug.Log). 기능의 시작.
나는 생각할 수 없다. 문제가 무엇인지 알아 내라. 인스턴스 변수를 시도했지만 작동하지 않습니다.
누구에게 어떤 문제가있을 수 있습니까?
을 말할 수 있어야한다 : 즉, 실제로 차이를 설명한다
bankBalance
이 값을 변경하기 전에 작업 외부
Debug.Log
가 실행하는 말을하는 것입니다 라이브러리에 대해 많이 모르지만 GetValueAsync() 함수의 이름을 기반으로 두 번째 Debug.Log는 은행 잔액을 받고있는 비동기 방식 때문에 첫 번째 전에 실행된다고 가정합니다. – LaslosGetValueAsync 작업이 완료 될 때까지 -이 작업이 완료 될 때까지 기다리지 않으므로 제어 흐름이 이미 GetBankBalance 메서드를 벗어났습니다. – Evk