我正在使用 Firebase
实时数据库制作一个 Android 应用。当新用户在我的应用上注册时,该用户的数据将保存在 Firebase 数据库中。
用户必须提供以下详细信息进行注册:
- 全名
- 电子邮件地址
- 用户名
- 密码
数据库结构
每当新用户尝试注册时,我必须确保每个用户的用户名都是唯一的,因此我检查数据库以确定用户输入的 username
是否已经存在于数据库中。
为此,我编写了以下方法:
private boolean usernameExists(String username) {
DatabaseReference fdbRefer = FirebaseDatabase.getInstance().getReference("Users/"+username);
return (fdbRefer != null);
}
我采用这种方法的逻辑是,如果getReference
方法找不到指定路径的引用,它会返回null
,因此我可以返回fdbRefer
是否为null
。如果fdbRefer
为null
,那么就意味着username
在数据库中不存在。
问题
该方法存在的问题是,无论输入的username
是否存在于数据库中,它总是返回true
。这让我相信fdbRefer
永远不会是null
。
这带来了我的问题...
问题
getReference
方法在无法找到指定路径的引用时会返回什么?检查username
是否已经存在于数据库中的正确方法是什么?