Firebase Unity получает данные слишком медленно

#c# #unity3d #firebase-realtime-database

# #c# #unity3d #firebase-база данных в реальном времени

Вопрос:

у меня проблема с использованием firebase в Unity.

Мой json такой

 "-MOGcdnpalVOmnxvO8ma" : {
  "imdbID" : "tt12571792",
  "imdb_moviename" : "A Queen Is Born",
  "like" : 0,
  "myDbID" : 39,
  "poster" : "N/A",
  "title" : "A Queen Is Born",
  "type" : "series",
  "unlike" : 0,
  "year" : "2020–"
},
 

И правила для этого json

 {
  "rules": {
      "Movie": {
        ".read": true,  
            ".write": true,  
          ".indexOn": ["like"]
    }
  }
}
 

В firebase есть записи 4k.
я вызываю этот метод из unity, но результат приходит через 2 минуты.

 public GetMovieList() { 
    if (movieDatabase==null){
            movieDatabase = FirebaseDatabase.DefaultInstance.GetReference("Movie");
    }
    List<Movie> movies = new List<Movie>();

    movieDatabase.OrderByChild("like").LimitToLast(10).GetValueAsync().ContinueWith(task =>
    {
        if (task.IsFaulted)
        {
            Debug.Log(" Task Fail");
            
        }

        if (task.IsCompleted) {
            Debug.Log("Task OK");
            DataSnapshot snapshot = task.Resu<
            foreach (DataSnapshot movierec in snapshot.Children)
            {
                Movie m = MovieParse(snapshot, movierec);
                movies.Add(m);
            }
        }
    });     
}
 

Комментарии:

1. В API нет ничего, что могло бы повлиять на эту производительность. Но если вы впервые взаимодействуете с базой данных, возможно, вы смотрите на время, необходимое для установления начального соединения. Загружаются ли данные (намного) быстрее при повторной попытке?

2. теперь он работает нормально. я думаю, что первое взаимодействие было медленным, как вы сказали. Спасибо большое за помощь

Ответ №1:

В API нет ничего, что могло бы повлиять на эту производительность.

Но если вы впервые взаимодействуете с базой данных, возможно, вы смотрите на время, необходимое для установления начального соединения. Если это так, последующие загрузки должны быть намного быстрее.

В любом случае, возможно, стоит проверить соединение вашей системы с базой данных (обычно https://<yourprojectname>.firbaseio.com/ ) с помощью такого инструмента, как tracert .