如何将用户当前用户详细信息插入Firebase中的另一个节点?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将用户当前用户详细信息插入Firebase中的另一个节点?相关的知识,希望对你有一定的参考价值。
我使用这个在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来获取当前登录用户的名字。
是的,这是正确的。在getDisplayName()对象上调用FirebaseUser
:
从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()
方法,但这些方法都不允许你传递一个对象和一个String作为参数。
问题3.如何添加时间戳我知道时间戳在每个系统上的数据插入中非常重要。
This是你添加和获取你所谈论的时间戳的方式。
以上是关于如何将用户当前用户详细信息插入Firebase中的另一个节点?的主要内容,如果未能解决你的问题,请参考以下文章
在 Android 中未检索 Firebase 用户详细信息
您如何获取与 Firestore 中的 authUser 相关的用户数据库详细信息?
Firebase 的云功能 - 获取当前用户 ID [重复]