C# Android Firebase-将经过身份验证的用户添加到数据库中

C# Android Firebase-将经过身份验证的用户添加到数据库中,c#,firebase,firebase-realtime-database,xamarin.android,C#,Firebase,Firebase Realtime Database,Xamarin.android,好的,我正在Visual Studio中构建xamarin.android应用程序,有很多这类问题,但是我真的没有找到关于xamarin.android的任何东西,所有东西都是基于Java的。我试着遵循这些教程和答案,但总是有一些东西缺失或无法在Xamarin android上工作 我已经做了身份验证,它工作得很好,没有问题。我尝试将用户信息(用户在注册时输入的信息)存储到数据库中。这有点奏效,但有一个问题。以下是代码: public void OnComplete(Task task)

好的,我正在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);

    }
此代码将用户信息存储在数据库的“用户”节点下。但是在
“user”
下还有一个节点带有一些随机值,下面是关于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 online数据库之前的最后一次尝试。

当您调用
PostAsync
时,客户端会在您调用它的位置下创建一个新的子节点。这类似于大多数其他Firebase SDK中的HTTP
POST
动词和
push()
方法

要将数据写入您确切指定的位置,请使用
PutAsync

var item = firebase.Child("users").Child(uid).PutAsync<Account>(user);

var item=firebase.Child(“用户”).Child(uid).PutAsync.

请向我们展示
帐户的源代码。我在问题中添加了Account类代码。我是这样尝试的(指定了两个子节点),但总是出现错误,假设它不起作用,然后尝试了其他方法。不知道我应该使用Xamarin.Database.Query。在那之后,它成功了。PutAsync成功了。非常感谢,先生。我将继续阅读提供的链接,希望我以后能够检索到它。
var item = firebase.Child("users").Child(uid).PutAsync<Account>(user);