我使用Alex Mamo的解决方案来检查我的数据库中是否存在唯一值,但是快照总是为空。 解决方案如下:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userNameRef = rootRef.child("Users").child("Nick123");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(!dataSnapshot.exists()) {
//create new user
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
userNameRef.addListenerForSingleValueEvent(eventListener);
我的数据库长这样:
users
(auto-generated push token ID)
fullname
username
gender
...
我不确定这是否是正确的方法,但我使用push()方法将用户对象添加到数据库中,并且该方法会生成类似于上面的推送令牌ID。
因此,为了避免创建重复的用户,我应该对上述解决方案进行哪些更改?是否有更好的方法来解决这个问题?也许像使用一些Firebase身份验证方法检查Firebase uid?
更新:
我的数据库截图:
![database](https://istack.dev59.com/zKUW8.webp)
child("Nick123");
,正如我在答案的第二部分所解释的那样。既然你使用的是randomid而不是userid,那么请检查我的答案的第一部分。 - Peter Haddad