private void FindCompetitor(DataSnapshot snapshotData) { foreach (DataSnapshot dataSnapshot in snapshotData.Children) { if (!dataSnapshot.Key.Equals(user.GetLoggedUser().UserId)) { lvlAddress = dataSnapshot.Key; break; } } FirebaseDatabase.DefaultInstance .GetReference("Tournaments") .Child(lvlAddress) .GetValueAsync().ContinueWith(task => { if (task.IsFaulted) { } else if (task.IsCompleted) { DataSnapshot snapshot = task.Result; wrapper = JsonUtility.FromJson <TournamentDataWrapper>(snapshot.GetRawJsonValue()); competitor = wrapper.creator.name; JoinMatch(); } }); }
public void OnGenerate() { playerRole = "creator"; HideLayout(); tournamentMessage.GetComponent <Text>().text = "Setting everything ready..."; string email = user.GetLoggedUser().Email; wrapper = new TournamentDataWrapper( new Competitor(email.Substring(0, email.IndexOf('@')), false, 0, false), new Competitor("guest", false, 0, false), new LevelWrapper(level.GenerateLevel())); reference.Child("Tournaments") .Child(user.GetLoggedUser().UserId) .SetRawJsonValueAsync(JsonUtility.ToJson(wrapper)); reference.Child("Tournaments") .Child(user.GetLoggedUser().UserId) .Child("guest") .Child("name").ValueChanged += HandleGuestJoined; reference.Child("Tournaments") .Child(user.GetLoggedUser().UserId) .Child("guest") .Child("ready").ValueChanged += HandleCompetitorReady; reference.Child("Tournaments") .Child(user.GetLoggedUser().UserId) .Child("guest") .Child("obstaclesTravelled").ValueChanged += HandleCompetitorTravelledObstacle; reference.Child("Tournaments") .Child(user.GetLoggedUser().UserId) .Child("guest") .Child("finished").ValueChanged += HandleCompetitorFinished; tournamentMessage.GetComponent <Text>().text = "Waiting for opponent..."; }