【问题标题】:How to insert user current user details to another node in Firebase?如何将用户当前用户详细信息插入 Firebase 中的另一个节点?
【发布时间】:2018-11-26 09:24:26
【问题描述】:

我正在使用这个在 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。 如何添加时间戳我知道时间戳在每个系统上的数据插入中非常重要。

【问题讨论】:

    标签: java android firebase firebase-realtime-database


    【解决方案1】:

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

    是的,没错。在 FirebaseUser 对象上调用 getDisplayName()

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

    关于你问题的第二部分:

    但是自从我在我的应用程序中创建了自己的登录表单和用户注册后,.getDisplayName 将在哪里获取用户名。

    如上所述,getDisplayName() 正在为您获取来自身份验证过程的名称。如果您想从自定义用户对象中获取用户名,那么您应该首先从数据库中获取用户对象并在需要的地方使用它。

    因为我想在请求节点中输入一个名称,这样当我在我的 HTML Web 管理面板中检索它时,数据将更易于阅读。

    如果要在节点中添加名称,则应将显示名称传递给child() 方法, 传递给setValue()。您的代码应如下所示:

    rootReference.child("Request")
        .child("Pending")
        .child(firebaseuser.getUid() + "_" + firebaseuser.getDisplayName())
        .setValue(myUserInsertObj);
    

    此代码将生成一个可能如下所示的子代:

    Firebase-root
       |
       --- Request
            |
            --- Pending
                  |
                  --- SxbVg0...uobvk1_Theodore
                        |
                        --- //user details
    

    DatabaseReference 类有 4 个重载的 setValue() 方法,但这些方法都不允许您将对象与字符串一起作为参数传递。

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

    This 是您添加和获取您正在谈论的时间戳的方式。

    【讨论】:

    • 我在这篇文章stackoverflow.com/questions/44809824/… 上看到了您的答案
    • 是的,怎么样?
    • 我不明白。还有其他问题吗?
    • 我真的不知道该怎么做If you want to get the user name from your custom user object then you should first get the user object from the database and use it where it is needed.
    • This 是您可以从数据库中添加和获取用户的方法。现在清楚了吗?
    猜你喜欢
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    相关资源
    最近更新 更多