Хорошо, я создаю приложение xamarin.android для Visual Studio, и вопросов такого типа довольно много, но я действительно ничего не нашел в отношении xamarin.android, все основано на Java. Я пытался следовать этим учебникам и ответам, но всегда было что-то не так или не работало на Xamarin android.
Я сделал аутентификацию, и она отлично работает, никаких проблем нет. И я попытался сохранить информацию о пользователе (информацию, которую пользователь вводит при регистрации) в базу данных. Это вроде сработало, но с одной проблемой. Вот код:
public void OnComplete(Task task)
{
if (task.IsSuccessful)
{
Toast.MakeText(this, "Successful", ToastLength.Long).Show();
FirebaseUser user = FirebaseAuth.GetInstance(app).CurrentUser;
id = user.Uid;
CreateUser();
buttonSignIn.PerformClick();
progressBar.Visibility = ViewStates.Invisible;
}
else
{
//something
}
}
А вот и CreateUser()
метод:
private void CreateUser ()
{
Account user = new Account();
user.uid = id;
user.name = signup_inputName;
user.lastName = signup_inputLastName;
user.email = signup_inputEmail;
user.phone = signup_inputPhoneNumber;
var firebase = new FirebaseClient(FirebaseURL);
var item = firebase.Child("users").PostAsync<Account>(user);
}
Вот код класса учетной записи:
public class Account
{
public string uid { get; set; }
public string name { get; set; }
public string lastName { get; set; }
public string email { get; set; }
public string phone { get; set; }
}
Этот код хранит информацию о пользователе в узле "users"
в базе данных. Но есть еще один узел под "user"
с некоторым случайным значением и ниже информация о пользователе (включая uid
). Вот вывод:
- Users
-LBGFtYFTfD3l1hmwHVn
email: "testuser@test.com"
lastName:"peric"
name: "pero"
phone: "12321"
uid: "18puc5CzSZfzbdflzekzNCHGHR62"
Итак, мой вопрос: не должно ли это случайное значение ниже "users"
узла быть uid
? Если да, то как это установить?
Я пробовал с этим:
Account user = new Account();
user.uid = id;
user.name = signup_inputName;
user.lastName = signup_inputLastName;
user.email = signup_inputEmail;
user.phone = signup_inputPhoneNumber;
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("users").Child(uid).SetValue(user)
Но это не сработало, я получаю эту ошибку:
Firebase No properties to serialize found on class
Несмотря на то, что я установил публичные методы получения и установки в классе пользователей.
Мне нужно получить эту информацию о пользователе и показать ее в некоторых местах моего приложения, но я просто не могу заставить ее работать. Это мой первый раз, когда я использую Firebase, и я привык к базе данных SQL, так что это меня действительно смущает. Кроме того, в Интернете очень мало информации о xamarin.android и firebase, плюс я вообще новичок в программировании в целом. Любая помощь будет признательна. Это моя последняя попытка перед переходом на онлайн базу данных SQL.