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

好的,所以我在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吗?如果是,该如何设置?我尝试了这个:

即使我在用户类中设置了公共获取器和设置器。


我需要获取该用户信息,并将其显示在我的应用程序中的某些位置,但是我无法使其正常工作。这是我第一次使用Firebase,而且我已经习惯使用SQL数据库,因此这确实让我感到困惑。另外,关于xamarin.android和firebase的在线信息很少,而且我实际上对编程还是陌生的。任何帮助将不胜感激。这是我切换到SQL在线数据库之前的最后尝试。


杨魅力
浏览 155回答 1
1回答

四季花海

调用时PostAsync,客户端在调用位置下创建一个新的子节点。这类似于HTTPPOST动词以及push()大多数其他Firebase SDK中的方法。要将数据写入您确切指定的位置,请使用PutAsync:var&nbsp;item&nbsp;=&nbsp;firebase.Child("users").Child(uid).PutAsync<Account>(user);请参阅Firebase.Xamarin的自述文件中的示例。
打开App,查看更多内容
随时随地看视频慕课网APP