我有一个使用Firebase
数据库的android应用程序。 Firebase
数据库结构如下:
Users
的每个孩子都是不同用户的username
。
我的应用程序中有一个搜索字段,我已附加TextChangedListener
。此搜索字段可用于搜索其他用户的usernames
。
现在,当用户在搜索字段中输入任何文字,例如jo
时,我想从以jo
开头的数据库中提取前20个用户名,在我的例如,它将返回john_jj
以及以jo
开头的所有其他用户名。
等同于:
SELECT username
FROM table
WHERE username LIKE 'jo%'
LIMIT 20;
如何编写查询以从Firebase数据库获取以特定字母开头的前20个用户名,例如jo
?
答案 0 :(得分:3)
此:
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)
是LIMIT 20;
有关firebase中查询的详细信息,请查看以下内容:Queries in Firebase