【问题标题】:Check if user exists in database before creating a new one在创建新用户之前检查用户是否存在于数据库中
【发布时间】:2017-08-11 16:37:37
【问题描述】:
我正在使用 firebase 和 angularfire 创建用户列表。
数据库结构是这样的:
在创建新用户名之前,我需要搜索用户名是否存在。
问题是我使用的是自动生成的 id 而不是自己创建的。
如果存在特定昵称,我如何搜索?谢谢!
【问题讨论】:
标签:
angular
firebase
firebase-realtime-database
angularfire
【解决方案1】:
如果我遇到这种情况,我会检查每个昵称。
下面是一个简单的例子。
其实你应该把所有昵称放在数组里,最后检查一下。
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);
【解决方案2】:
如果您确定要创建自己的“ID”,您可以这样做:
userReference.child("otherschilds").child("nickname").setValue("mickey");
但不是一个好习惯。