当数据库中没有条目时, if (dataSnapshot.getValue() == null) 返回 true 并且在完成“if”部分后运行 else 部分

我的应用程序中有一个注册页面,在注册时,我会检查该名称是否已在 firebase 中注册。如果名称已经存在,我会根据需要收到 toast 消息(“用户已存在”),但是如果有新条目,我可以完美注册,但我也会在注册后收到 toast 消息。

请参考以下代码:

mFirebaseDatabase = FirebaseDatabase.getInstance().getReference().child("Registration");

mFirebaseDatabase.orderByChild("uname").
equalTo(name.getSelectedItem().toString().trim()).addValueEventListener(new ValueEventListener() {            

    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        if (dataSnapshot.getValue() == null) {
            if (TextUtils.isEmpty(userId)) {
                createUser(name.getSelectedItem().toString().trim(), 
                           designation.getSelectedItem().toString().trim(),
                           phone.getText().toString().trim(), 
                           email.getText().toString().trim(),
                           password.getText().toString().trim(),
                           email1.getText().toString().trim(),
                           phone1.getText().toString().trim(),
                           telephone.getText().toString().trim());
                 Intent login = new Intent(Register.this, Login.class);
                 startActivity(login);
             }
         } else {
             Toast.makeText(Register.this, "User already Registered", Toast.LENGTH_SHORT).show();
         }
     }

     @Override
     public void onCancelled(@NonNull DatabaseError databaseError) {}
 });

所以注册后,我收到消息“用户已经注册”

萨米阿扎尔

我认为当您创建新用户并添加到 firebase 数据库时,onDataChange监听器又被触发了一次。

你可以试试这个代码也许对你有帮助:

boolean isUserCreated = false;
mFirebaseDatabase....addValueEventListener(new ValueEventListener() {            

@Override
public void onDataChange(...) {
    if (dataSnapshot.getValue() == null) {
        if (TextUtils.isEmpty(userId)) {
            isUserCreated = true;
            createUser(...) 
         }
     } else if (!isUserCreated) {
         Toast.makeText(Register.this, "User already Registered", Toast.LENGTH_SHORT).show();
     }
 }
... 
});

注意:这段代码很简洁。您必须注意isUserCreated变量及其用法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档