【问题标题】: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");
    

    但不是一个好习惯。

    【讨论】:

      猜你喜欢
      • 2018-04-16
      • 2016-08-06
      • 2013-08-31
      • 2021-12-15
      • 2021-12-19
      • 1970-01-01
      • 1970-01-01
      • 2018-06-24
      相关资源
      最近更新 更多