gpt4 book ai didi

java - 如何检查firebase数据库中是否存在值

转载 作者:行者123 更新时间:2023-12-01 22:08:35 25 4
gpt4 key购买 nike

我有这个数据库:

enter image description here

我想查明电子邮件(数据库中的值)是否已存在。因此,我必须迭代“email”的每个子级,并检查该值是否等于字符串 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) {

}
});

总之,如果我输入 person1@m.de,它应该会提示它存在

最佳答案

这是一个非常简单的方法。让你的电子邮件像 child 一样。您必须替换电子邮件中的点并将其设置为子项。 (您不能直接使用电子邮件发送给 child )

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) {

}
});

关于java - 如何检查firebase数据库中是否存在值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58673887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com