Я как-то сделал обходной путь, чтобы исправить это.
На самом деле SnapShot.Children (от Firebase Unity SDK) имеет IEnumerable. Тип.
Я искал в интернете итерацию IEnumerable коллекций.
А потом заменил мой код из этого:
else if (task.IsCompleted) {
DataSnapshot snapshot = task.Result;
// Do something with snapshot...
foreach(DataSnapshot s in snapshot.Children){
IDictionary dictUsers = (IDictionary)s.Value;
Debug.Log(dictUsers["displayName"]);
}
// After this foreach loop in snapshot.Children, nothing executes
UIManager.instance.ShowOtherUsers();
}
К этому:
else if (task.IsCompleted)
{
DataSnapshot snapshot = task.Result;
// Do something with snapshot...
using (var sequenceEnum = snapshot.Children.GetEnumerator())
{
for(int i = 0 ;i<snapshot.Children.Count();i++){
while (sequenceEnum.MoveNext())
{
try{
IDictionary dictUser =(IDictionary)sequenceEnum.Current.Value;
Debug.Log("displayName:"+dictUser["displayName"]);
}
catch(System.Exception e){
Debug.Log(e.Message);
}
Debug.Log("At The End!");
UIManager.instance.ShowOtherUsers(); // Now it executes like a Charm
}
Это работало как Очарование ... Что я понимаю, так это то, что это выполнение выполнялось с помощью «Задачи» с резьбой.
Хотя я не знаю точно, как это работает или почему это не работает с моим предыдущим кодом. Кто-то, кто может предоставить лучшую информацию, приветствуется :)
Ура! * * 1013