这是按钮的onclick的代码,我要做的是单击他的按钮应用程序,如果成功,则必须从firebase数据库中获取电子邮件,该电子邮件必须显示在找到的电子邮件的编辑文本中,否则显示在该电子邮件的“编辑文本”中未找到,在这里我能够获取电子邮件并显示在Edit-text上找到的电子邮件,但无法显示未找到的电子邮件(代码的其他部分),而是在控制台中获取
W/PersistentConnection: pc_0 - Using an unspecified index. Consider adding '".indexOn": "email"' at /users/users to your security and Firebase rules for better performance
conbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Firebase ref = new Firebase("https://(refrence of firebse database)");
final String searchEmail = emailcon.getText().toString().trim();
final Query query = ref.orderByChild("email").equalTo(searchEmail);
query.addValueEventListener(new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshot)
{
for (DataSnapshot child : dataSnapshot.getChildren())
{
final String fetchEmail;
Map<?, ?> value = (Map<?, ?>) child.getValue();
Log.d("main2activity ","User data : "+ value);
fetchEmail = (String) value.get("email");
Log.d("main2activity ","User email : "+ fetchEmail);
if (searchEmail.equals(fetchEmail))
{
emailcon.setText("email found hurray "+query.getRef());
}
else
{
emailcon.setText("still no email found!!");
}
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
});
由于您要触发查询,因此您将获得一个可以包含0个或多个子代的快照。如果其中包含任何子项,则这些子项将具有您在其中使用的电子邮件地址equalTo()
您需要以onDataChange()
稍微不同的方式处理:
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.hasChildren()) {
for (DataSnapshot child : dataSnapshot.getChildren()) {
emailcon.setText("email "+searchEmail+" found at URL "+child.getRef());
}
}
else {
emailcon.setText("still no email found!!");
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句