Получить первого ребенка из Firebase, не зная имени - PullRequest
0 голосов
/ 16 февраля 2020

Я хочу, чтобы дети играли в «игры», но я должен знать имена детей.

enter image description here

public void getdata()
{
    FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("url...");
    FirebaseDatabase.DefaultInstance.GetReference("games").GetValueAsync().ContinueWith(task => {
        if (task.IsFaulted)
        {
            Debug.Log(task.Exception);
        }
        else if (task.IsCompleted)
        {
            DataSnapshot snapshot = task.Result;
            //Get the children of "games" and Debug.log them
            snapshot.Child("path"); // Requires the path. What if I don't know the path ?
        }
    });
}

Doesen ' t существует что-то вроде:

snapshot.Child(0);
snapshot.Child(1); 

Ответы [ 2 ]

1 голос
/ 16 февраля 2020

Как сказал Дуг, Firebase API не разрешает доступ на основе индекса к дочерним узлам. Вам либо нужно знать ключ дочернего узла, либо вы можете выполнить итерацию по всем дочерним узлам.

DataSnapshot snapshot = task.Result;

foreach (DataSnapshot child in snapshot.Children) {
    Debug.Log("Received value for leader: "+child.Value);
}

Если вы хотите получить доступ к указанному свойству c каждого дочернего узла, вы должны выполнить например child.Child("Score").Value.

1 голос
/ 16 февраля 2020

Firebase не предлагает представление ваших данных в виде массива, и по умолчанию порядок дочерних элементов отсутствует. Порядок, который вы видите в консоли, представляет собой просто алфавитную сортировку имен дочерних элементов.

Вам нужно будет либо узнать имена дочерних элементов, либо использовать запрос упорядоченного типа, где Данные самих детей используются для определения того, кто из них на первом месте. Я предлагаю прочитать документацию , чтобы узнать, как делать запросы при заказе. Вам нужно будет определить некоторые данные у ваших детей, чтобы выяснить, какие из них должны быть первыми. Затем, чтобы получить только первого ребенка, вы можете ограничить результатами только один.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...