好的,所以我在 Visual Studio 中构建 xamarin.android 应用程序,有很多这类问题,但我真的没有找到任何关于 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
即使我在用户类中设置了公共 getter 和 setter。
我需要获取该用户信息并将其显示在我的应用程序的某些位置,但我无法让它工作。这是我第一次使用 Firebase,我已经习惯了 SQL 数据库,所以这让我很困惑。此外,关于 xamarin.android 和 firebase 的在线信息很少,而且我实际上是一般编程的新手。任何帮助将不胜感激。这是我在切换到 SQL 在线数据库之前的最后一次尝试。