【发布时间】:2019-01-17 06:15:49
【问题描述】:
我得到Alex Mamo's Solution 是为了检查我的数据库中是否存在唯一值,但快照始终为空。解决方法在这里:
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 auth 方法检查 firebase uid?
【问题讨论】:
-
你得到 null 因为你没有一个叫 Nick123
child("Nick123");的孩子,正如我在答案的第二部分中解释的那样。由于您使用的是 randomid 而不是 userid,因此请检查我的答案的第一部分。
标签: java android firebase firebase-realtime-database