我有一个使用Firebase
数据库的android应用程序。 Firebase
数据库结构如下所示:Users
的每个子级都是不同用户的username
。
我想要的是
我的应用程序中有一个附加了TextChangedListener
的搜索字段。此搜索字段可用于搜索其他用户的usernames
。
现在,当用户在搜索字段中输入任何文本,例如jo
时,我想从以jo
开头的数据库中获取前20个用户名,在我的情况下,它将返回john_jj
和所有其他以该开头的用户名与jo
。
等同于:
SELECT username
FROM table
WHERE username LIKE 'jo%'
LIMIT 20;
题
如何编写查询以从Firebase数据库中获取以特定字母(例如
jo
)开头的前20个用户名? 最佳答案
这个:
SELECT username
FROM table
WHERE username LIKE 'jo%'
LIMIT 20;
在firebase中可以像这样:
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("Users");
ref.orderByChild(username).startAt("jo").endAt("jo\uf8ff").limitToFirst(20).addValueEventListener(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data: dataSnapshot.getChildren()){
String usernames=data.getKey();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
child("Users")
是表orderByChild(username)
是列startAt("jo").endAt("jo\uf8ff")
是这样的'jo%'吗?limitToFirst(20)
是此限制20;有关Firebase中查询的更多信息,请检查以下内容:Queries in Firebase