Я использую базу данных Firebase Realtime для обработки некоторых пользовательских интерфейсов в своем мобильном приложении Unity.Я сохраняю и извлекаю данные из своей базы данных без каких-либо проблем.Проблема возникает, когда я хочу загрузить изображение из Firebase Storage.Я сохранил URL-адреса и имена изображений на моем сервере, и теперь я пытаюсь создать префаб.Этот префаб содержит панель с текстом и изображением для каждого потомка Firebase.Структура изображения, которое я пытаюсь загрузить из своей базы данных, выглядит следующим образом:
Так что в моем коде я иду к ребенку "Byer",найдите имя и добавьте ключ, так как имя моего недавно созданного префаба работает нормально.Но когда я пытаюсь загрузить imageURL в изображение, у меня возникает проблема - мой код выглядит так:
DatabaseReference reference = FirebaseDatabase.DefaultInstance.RootReference;
FirebaseDatabase.DefaultInstance.GetReference("Byer").ChildAdded += Handle_ChildAdded;
void Handle_ChildAdded(object sender, ChildChangedEventArgs e)
{
if (e.Snapshot.Value != null)
{
var dict = e.Snapshot.Value as Dictionary<string, object>;
Transform scrollViewObj = Instantiate(prefab, new Vector3(0, (downSize * Global.citiesCount) - firstY, 0), Quaternion.identity);
scrollViewObj.transform.Find("Text").gameObject.GetComponent<Text>().text = e.Snapshot.Key;
scrollViewObj.name = e.Snapshot.Key;
//HERE I TRY TO LOAD IMAGE FROM URL (This is my problem)
string data_URL = dict["ImageURL"] as string;
//Start coroutine to download image
StartCoroutine(AccessURL(data_URL, scrollViewObj.transform.Find("Image").gameObject.GetComponent<Image>()));
}
}
//Function to download (This could might also be my problem)
IEnumerator AccessURL(string url, Image img)
{
//Debug.Log("Accessing texture URL in database");
using (WWW www = new WWW(url))
{
yield return www;
Renderer r = GetComponent<Renderer>();
r.material.mainTexture = www.texture;
img.material.mainTexture = www.texture;
Debug.Log("Texture URL: " + www.url);
}
}
Кто-нибудь может увидеть, что я делаю неправильно?