【发布时间】:2016-07-17 23:49:59
【问题描述】:
这里是按钮的 onclick 代码,我想要做的是点击他的按钮应用程序必须从 firebase 数据库中获取电子邮件,如果成功,它必须显示在编辑文本中,找到的电子邮件在编辑中显示 -找不到电子邮件的文本,在这里我可以获取电子邮件并显示在编辑文本上找到的电子邮件但无法显示找不到电子邮件(代码的其他部分)而是我在控制台中得到这个
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) {
}
});
}
});
【问题讨论】:
-
查询只返回匹配邮件的记录。很明显,else 子句永远不会被执行。而是检查查询是否返回了记录。
-
如何,帮助一些代码,我检查了查询是否不为空,但发现查询永远不会为空
-
@Henry:这是一个 Value 监听器,当没有匹配的孩子时它也会触发。
-
@FrankvanPuffelen 确定,但不会有
searchEmail.equals(fetchEmail)给出错误的记录。 -
正确。请参阅下面我的回答,了解如何使用这些知识。
标签: java android if-statement firebase firebase-realtime-database