Java 如何将用户当前用户详细信息插入Firebase中的另一个节点?

Java 如何将用户当前用户详细信息插入Firebase中的另一个节点?,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我在Android的Firebase数据库中的请求节点中插入一个数据 public void submitRequest(View v) { Request myUserInsertObj = "Pending"; rootReference.child("Request").child("Pending").child(firebaseuser.getUid()).setValue (myUserInsertObj); } 这是我的请求类 Public class Request{

我在Android的Firebase数据库中的请求节点中插入一个数据

public void submitRequest(View v) {
Request myUserInsertObj = "Pending";
rootReference.child("Request").child("Pending").child(firebaseuser.getUid()).setValue
(myUserInsertObj);    
}
这是我的请求类

Public class Request{

public String request_status;

public Request(String request_status){

this.request_status = request_status;
}

Request()
}
我在firebase文档中发现,我可以使用
firebaseuser.getDisplayName
获取当前登录的用户名。但是,
.getDisplayName
从哪里获得用户名,因为我在应用程序中创建了自己的登录表单和用户注册

问题2: 如果我这样做,这可能吗?因为我想在请求来宾节点中输入一个名称,这样当我在HTML web管理面板中检索它时,数据将更易于读取

  rootReference.child("Request")
        .child("Pending")
        .child(firebaseuser.getUid())
        .setValue(myUserInsertObj + firebaseuser.getDisplayName);
如果是,我应该在我的请求类中添加什么

问题3。 如何添加时间戳我知道时间戳在每个系统的数据插入中都非常重要

我在firebase文档中发现,我可以使用firebaseuser.getDisplayName获取当前登录的用户名

是的,没错。调用
FirebaseUser
对象:

从Firebase项目的用户数据库返回此用户的主显示名称

关于你问题的第二部分:

但是,由于我在应用程序中创建了自己的登录表单和用户注册,因此.getDisplayName将从何处获取用户名

如上所述,
getDisplayName()
将从身份验证过程中获取名称。如果要从自定义用户对象获取用户名,则应首先从数据库获取用户对象,并在需要时使用它

因为我想在请求节点中放置一个名称,这样当我在HTML web管理面板中检索它时,数据将更易于读取

  rootReference.child("Request")
        .child("Pending")
        .child(firebaseuser.getUid())
        .setValue(myUserInsertObj + firebaseuser.getDisplayName);
如果要在节点中添加名称,应将显示名称传递给
child()
方法,并将not传递给
setValue()
。您的代码应该如下所示:

rootReference.child("Request")
    .child("Pending")
    .child(firebaseuser.getUid() + "_" + firebaseuser.getDisplayName())
    .setValue(myUserInsertObj);
Firebase-root
   |
   --- Request
        |
        --- Pending
              |
              --- SxbVg0...uobvk1_Theodore
                    |
                    --- //user details
此代码将生成一个子项,该子项可能如下所示:

rootReference.child("Request")
    .child("Pending")
    .child(firebaseuser.getUid() + "_" + firebaseuser.getDisplayName())
    .setValue(myUserInsertObj);
Firebase-root
   |
   --- Request
        |
        --- Pending
              |
              --- SxbVg0...uobvk1_Theodore
                    |
                    --- //user details
类有4个重载的
setValue()
方法,但这些方法都不允许将对象和字符串作为参数传递

问题3。如何添加时间戳我知道时间戳在每个系统的数据插入中都非常重要


就是如何添加和获取您所谈论的时间戳的。

我在这篇文章中看到了您的答案,如果我只是在我的“用户”节点单击submitRequest按钮时从该节点复制用户名,是否可以使用您的答案将节点复制到其他节点?是的,怎么办?我不明白。还有什么问题吗?我真的不知道怎么做
如果你想从自定义用户对象中获取用户名,那么你应该首先从数据库中获取用户对象,并在需要的地方使用它。
是如何从数据库中添加和获取用户的。现在清楚了吗?