Это мои первые вопросы о переполнении стека, поэтому я прошу прощения, если он отформатирован неправильно.Я пытался использовать Xamarin.Forms в сочетании с базой данных Firebase в реальном времени, но не могу правильно получить данные.Я продолжаю получать следующее исключение.
(я не могу понять, как связать локальное изображение, поэтому вот сообщение об исключении):
Unhandled Exception:
Firebase.Database.FirebaseException: Exception occured while processing the request.
Url: https://MY_DATABASE_LINK/users/user_name1/.json
Request Data:
Response: {"age":"Age_Val1","fName":"First_Val1","lName":"Last_Val1"}
Я использую Xamarin сNuGet пакет FirebaseDatabase.net и пытался следовать следующим учебникам и онлайн-вопросы:
https://www.c -sharpcorner.com / article / xamarin-forms-working-with-firebase-realtime-database-crud-operations /
https://forums.xamarin.com/discussion/80017/firebase-database-query
Я пробовал использовать обе техники, и выдается одно и то же исключение.Кажется, база данных возвращает мне правильные данные в формате JSON, но мой код не может десериализовать их.Вот моя структура базы данных JSON и код, который я пытаюсь запустить -
FirebaseHelper.cs:
public class FirebaseHelper
{
FirebaseClient firebase = new FirebaseClient("https://MY_DATABASE_LINK.firebaseio.com/");
public async Task<List<Person>> GetAllPersons()
{
return (await firebase
.Child("users")
.Child("user_name1")
.OnceAsync<Person>()).Select(item => new Person
{
FName = item.Object.FName,
LName = item.Object.LName,
Age = item.Object.Age
}).ToList();
}
}
Person.cs:
public class Person
{
public string FName { get; set; }
public string LName { get; set; }
public string Age { get; set; }
}
JSON Database Structure:
{
"users" : {
"user_name1" : {
"age" : "Age_Val1",
"fName" : "First_Val1",
"lName" : "Last_Val1"
},
"user_name2" : {
"age" : "Age_Val2",
"fName" : "First_Val2",
"lName" : "Last_Val2"
},
"user_name3" : {
"age" : "Age_Val3",
"fName" : "First_Val3",
"lName" : "Last_Val3"
}
}
}
Alt code tested:
List<Person> list_users = new List<Person>();
string[] ss = new string[] { "it", "succeeded" };
var items = await firebase
.Child("users")
.OrderByKey()
.OnceAsync<Person>();
foreach (var item in items)
{
Person user = new Person
{
FName = item.Object.FName,
LName = item.Object.LName,
Age = item.Object.Age
};
list_users.Add(user);
}
return list_users;
Я ожидал, что асинхронная пустота извлечет все объекты / данные из JSONОбъект 'user_name1' и назначить их каждой переменной в Person.cs, а затем создать единый список длины первого пользователя.
Я также сделал это только с Child («пользователи»), и он возвратил объект JSON большего размера, но все равно выдал исключение (ожидал список пользователей с длиной 3)
IМне просто интересно, почему это исключение выбрасывается?Или, если я пытаюсь прочитать и назначить данные неправильно, и если да, то как мне поступить правильно?