Unity Firebase различия между игроком и устройством - PullRequest
0 голосов
/ 27 ноября 2018

Я использую Unity 2018.2.15f1, Firebase и Android / iOS.У меня есть что-то, что работает нормально, пока нет.Вот мои настройки в Firebase.

Матчи -Global1v1 -OneVOne - -Active - - -MatchIDArray

То, что я делаю в Unity:

public void CheckForAvailable1v1Match() {
    reference.Child("Matches/OneVOne/Active/").GetValueAsync().ContinueWith(task => {
        if (task.IsFaulted)
        {
            Debug.Log("Fault");
        }
        else if (task.IsCanceled) {
            Debug.Log("Canceled");
        }
        else if (task.IsCompleted)
        {
            DataSnapshot snapshot = task.Result;

            var closedCount = 1;

            //ALL OF THESE BELOW WORK IN PLAYER BUT NOT ON DEVICE
            //if (snapshot.ChildrenCount < 1)
            //if (!snapshot.HasChildren)
            //if (snapshot.ChildrenCount == 0)
            //if (snapshot.Value == null)
            //if (snapshot == null)
            if(!snapshot.Exists)
            {
                Debug.Log("Does not exist here");
                gameMNG.CreateOneOnX();
                return;
            }

if (snapshot.ChildrenCount > 0)
{
    foreach (var c in snapshot.Children)
....

Вышеописанное прекрасно работает в плеере, но простовисит на устройстве.И Android, и iOS.

Из того, что я прочитал, если вы запрашиваете у firebase URL-адрес или запрос, снимок никогда не будет нулевым, поэтому он никогда не завершится ошибкой на снимке == null, поэтому вам следует использовать .Exists.

Что я сделал, чтобы обойти это, так это просто добавил в массив элемент, который я никогда не использую, и тогда конечная точка всегда будет существовать.Проблема возникает, когда эта таблица каким-то образом разрушается, а затем таблица становится пустой и вся игра заканчивается неудачей.

Есть идеи?

ОБНОВЛЕНИЕ Я реорганизовал свою базу данных и разбил объект сопоставления на два отдельных места.Теперь у меня есть:

OneVOne / Pending & Global1V1 / Active

Затем я использую снимок == null, как и раньше, и по какой-то причине он работает теперь без помех ...Я в замешательстве, но это работает.

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