【问题标题】:How to add data to user node in firebase如何将数据添加到firebase中的用户节点
【发布时间】:2018-06-30 07:23:46
【问题描述】:

我正在实现一个使用 Firebase 进行身份验证的应用程序,它运行良好。我现在要做的是在实时数据库的“用户”节点中添加更多数据。因此,我更改了数据库角色,现在它们看起来像这样。

`{
  "rules": {
    "users": {
      "$uid": {
        ".read": "$uid === auth.uid",
        ".write": "$uid === auth.uid"
      }
    }
  }
}`

现在我有一些代码可用于将数据保存在“用户”JSON 节点中,这就是代码:

 ` mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()) {


                    DatabaseReference dbRef = FirebaseDatabase.getInstance().getReference();
                    dbRef.child("users").child(task.getResult().getUser().getUid()).push().setValue"jovan").addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {
                            if (task.isSuccessful()) {
                                Log.i("info", "createUserInDatabase:success");
                            } else {
                                Log.i("info", "createUserInDatabase:failure");
                            }
                        }
                    });

                    Log.i("Info", "" + task.getResult().getUser().getUid());
                    Log.i("info", "createUserWithEmail:success");
                    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
                    startActivity(intent);
                    Toast.makeText(RegisterActivity.this, "Registered and logged in", Toast.LENGTH_SHORT).show();
                } else {
                    Log.i("info", "createUserWithEmail:failure");
                }
            }
        });`

正如我所说,这段代码有效,但当我查看 Firebase 时,我发现我的数据需要更加结构化和易于阅读。

这是我想做的链接,内容在第二个答案。 Stack Overflow link

提前致谢。

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    使用该用户的 uid 在用户节点中创建用户子节点,而不是推送。然后将用户详细信息设置到该节点。

    bRef.child("users").child(uid).setValueAsync(otherUserData)
    // otherUserData is a map or an object containing other user data
    

    您的数据结构将如下所示。

    用户

    --> -L3NpAd......

    ----> 名称:“jovan”

    ---->年龄:20

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-19
      • 1970-01-01
      • 2017-12-28
      • 1970-01-01
      • 2020-03-10
      • 1970-01-01
      • 2020-03-05
      • 1970-01-01
      相关资源
      最近更新 更多