在创建新用户之前检查用户是否存在于数据库中
Check if user exists in database before creating a new one
我正在使用 firebase 和 angularfire 创建用户列表。
数据库结构是这样的:
我需要在创建新用户名之前搜索用户名是否存在。
问题是我使用的是自动生成的 ID,而不是创建我自己的 ID。
如何搜索特定昵称是否存在?谢谢!
如果我遇到这种情况,我会检查每一个昵称。
下面是一个简单的例子。
其实你应该把所有的昵称都放在数组中,最后检查一下。
DatabaseReference myRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference def_nickname= myRef.child("user");
String input_nickname = "mickey";
ValueEventListener listener_nickname = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot p : dataSnapshot.getChildren()) {
String nickname = p.child("nickname").getValue(String.class);
if (input_nickname.equals(nickname)) {
[do something]} else { [do something]}
}
@Override
public void onCancelled(DatabaseError databaseError) {
};
def_nickname.addListenerForSingleValueEvent(listener_nickname);
如果您确定要创建自己的 'ID',您可以这样做:
userReference.child("otherschilds").child("nickname").setValue("mickey");
但这不是一个好习惯。
我正在使用 firebase 和 angularfire 创建用户列表。 数据库结构是这样的:
我需要在创建新用户名之前搜索用户名是否存在。 问题是我使用的是自动生成的 ID,而不是创建我自己的 ID。
如何搜索特定昵称是否存在?谢谢!
如果我遇到这种情况,我会检查每一个昵称。
下面是一个简单的例子。
其实你应该把所有的昵称都放在数组中,最后检查一下。
DatabaseReference myRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference def_nickname= myRef.child("user");
String input_nickname = "mickey";
ValueEventListener listener_nickname = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot p : dataSnapshot.getChildren()) {
String nickname = p.child("nickname").getValue(String.class);
if (input_nickname.equals(nickname)) {
[do something]} else { [do something]}
}
@Override
public void onCancelled(DatabaseError databaseError) {
};
def_nickname.addListenerForSingleValueEvent(listener_nickname);
如果您确定要创建自己的 'ID',您可以这样做:
userReference.child("otherschilds").child("nickname").setValue("mickey");
但这不是一个好习惯。