Android Firebase-生成唯一密钥,但不使用push();
我希望在firebase数据库中拥有自定义的唯一密钥(User1、User2、User3、User4……Usern) 当我使用Android Firebase-生成唯一密钥,但不使用push();,android,firebase,firebase-realtime-database,push,unique-key,Android,Firebase,Firebase Realtime Database,Push,Unique Key,我希望在firebase数据库中拥有自定义的唯一密钥(User1、User2、User3、User4……Usern) 当我使用push()时它生成一个长且不清楚的键,在排序时会使我感到困惑 我还尝试了child(“User1”)但它仅使用给定的User1键在数据库中保存一次。每次我想要覆盖数据库时,它只更新User1值 有没有更明智的选择来拥有自定义的唯一密钥 您应该研究使用来帮助您为Firebase数据库生成唯一密钥,而无需使用push() 这里有一个关于生成唯一密钥的另一个答案。您应该研究使
push()时代码>它生成一个长且不清楚的键,在排序时会使我感到困惑
我还尝试了child(“User1”)
但它仅使用给定的User1
键在数据库中保存一次。每次我想要覆盖数据库时,它只更新User1值
有没有更明智的选择来拥有自定义的唯一密钥
您应该研究使用来帮助您为Firebase数据库生成唯一密钥,而无需使用push()
这里有一个关于生成唯一密钥的另一个答案。您应该研究使用来帮助您为Firebase数据库生成唯一密钥,而无需使用push()
这里是另一个关于生成唯一密钥的答案。不要使用push()
为用户生成唯一密钥,而是使用user
对象的uid
在数据库中拥有用户节点。您可以通过调用以下行获取当前登录用户的uid
:-
uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
然后调用下一行将其用作数据库中的节点:-
mDatabase.child("users").child(uid).child("username").setValue("ABC");
这非常有效,因为:-
uid
对于每个用户都是唯一的,是在数据库中拥有和识别用户节点的最简单、最可靠的方法,特别是在多个位置
uid
登录用户可以通过上面的行从客户端Android应用程序轻松获取。因此,您不需要在客户端上专门保存和统计唯一ID。建议这样做不仅是为了简单,也是为了安全
因此,uid
节点是数据库中用户节点的理想选择。但是,出于所有其他目的,push()
仍然是推荐的方法。不要使用push()
为用户生成唯一密钥,而是使用user
对象的uid
在数据库中拥有用户节点。您可以通过调用以下行获取当前登录用户的uid
:-
uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
然后调用下一行将其用作数据库中的节点:-
mDatabase.child("users").child(uid).child("username").setValue("ABC");
这非常有效,因为:-
uid
对于每个用户都是唯一的,是在数据库中拥有和识别用户节点的最简单、最可靠的方法,特别是在多个位置
uid
登录用户可以通过上面的行从客户端Android应用程序轻松获取。因此,您不需要在客户端上专门保存和统计唯一ID。建议这样做不仅是为了简单,也是为了安全
因此,uid
节点是数据库中用户节点的理想选择。但是,出于所有其他目的,push()
仍然是推荐的方法。。但是您可以创建自己的自定义密钥。就像你想要的。但是你不需要做更多的额外工作。你必须先读取数据库
FirebaseDatabase.getInstance().getReference().child("Users")
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
HashMap<String, Object> user = (HashMap<String, Object>) dataSnapshot.getValue();
totalUser= user.size();
}
}
这样结构就会像这样
- 你的项目
-使用者
-用户1
-用户2
等等….没有。。但是您可以创建自己的自定义密钥。就像你想要的。但是你不需要做更多的额外工作。你必须先读取数据库
FirebaseDatabase.getInstance().getReference().child("Users")
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
HashMap<String, Object> user = (HashMap<String, Object>) dataSnapshot.getValue();
totalUser= user.size();
}
}
这样结构就会像这样
- 你的项目
-使用者
-用户1
-用户2
等等……这个问题我也面临,还是解决不了。我正在使用now push()。有谁能回答这个问题吗?他们在博客上写道如何解决这个问题我也面临着,仍然无法解决。我正在使用now push()。谁能回答这个问题?他们在自己的博客上写道怎么做