如何检查Firebase数据库中是否存在值

问题描述 投票:0回答:1

我有这个数据库:

enter image description here

我想找出电子邮件(数据库中的值)是否已经存在。因此,我必须遍历“电子邮件”的每个子对象,并检查该值是否等于字符串inputMail。

我尝试了以下代码,但是它不起作用,有人可以帮我吗?谢谢你

final String input_mail = et_email.getText().toString();

            DatabaseReference email = FirebaseDatabase.getInstance().getReference().child("email");

            email.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    for (DataSnapshot ds : dataSnapshot.getChildren()) {
                        String emailVal = ds.getValue(String.class);
                        if (emailVal.equals(input_mail)) {

                           //Toast exists
                        }


                        else {

                            //Toast not exists
                        }
                    }
                }

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

                }
            });

结论是,如果我输入[email protected],应该吐司它存在

java android
1个回答
0
投票

这是一个非常简单的方法。让您的电子邮件作为孩子。您必须替换电子邮件中的点并将其设置为子节点。

static String encodeUserEmail(String userEmail) {
    return userEmail.replace(".", ",");
}

static String decodeUserEmail(String userEmail) {
    return userEmail.replace(",", ".");
}

然后您可以像这样轻松地将其匹配:

final String input_mail = et_email.getText().toString();

            DatabaseReference email = FirebaseDatabase.getInstance().getReference().child("email");

            email.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                      if(datasnapshot.child(input_mail).exits){
                          //Toast exists
                       }else {
                           //Toast not exists
                       }

                    }
                }

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

                }
            });
© www.soinside.com 2019 - 2024. All rights reserved.