如何将数据添加到firebase中的用户节点

时间:2018-01-21 15:29:44

标签: android firebase firebase-realtime-database

我正在实施一个使用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时,我发现我的数据需要更加结构化,易于阅读。

enter image description here

以下是我想要做的链接,内容是第二个答案。 Stack Overflow link

提前致谢。

1 个答案:

答案 0 :(得分:1)

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

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

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

用户

- &GT; -L3NpAd ......

----&GT;名称:“jovan”

----&GT;年龄:20