【发布时间】:2017-10-31 12:55:25
【问题描述】:
几天前我遇到了一个问题,但我没有找到解决方案。
我正在尝试按名称在我的 firebase 数据库中搜索,但结果始终为空。
数据库是下一个;
我使用的代码是下一个;
final String nombre = edtNombreJugador.getText().toString().trim().toUpperCase();
mDatabase.child("user").child("personalData").orderByChild("name").equalTo(nombre);
mDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot singleSnapshot : dataSnapshot.getChildren()){
String title = (String) singleSnapshot.child("name").getValue(String.class);
System.out.println("TITLE: "+title);
}
在我的情况下,Title 总是返回 null。
有人可以帮帮我吗?我不知道我做错了什么......
【问题讨论】:
-
由于您将文本转换为全大写,它与混合大小写的内容不匹配。要解决此问题,要么要求用户执行完全大小写匹配,要么将全大写文本存储在附加属性中。我们今天早些时候刚刚解决了一个非常相似的问题:stackoverflow.com/questions/44264337/… 在 Firebase 中搜索是区分大小写的。
-
我认为问题不在于大写。在我的数据库中,属性名称的值只有大写字母。我的搜索代码对该数据库是否正确?
-
啊,我明白了。里面有错别字。你的代码加载了
user,而你的JSON有users(最后是s)。 -
是的,这是一个错误。我将成为“用户”,但结果相同,为空。我不知道为什么...
-
它有效!谢谢弗兰克!
标签: android firebase search firebase-realtime-database