【发布时间】:2017-11-26 18:29:00
【问题描述】:
我正在开发一款社交应用,可以帮助人们分享他们的位置。
我遇到的问题是我想创建一个 AutoCompleteTextView with Users Name 这将帮助用户找到其他用户的个人资料。但是,为了能够做到这一点,我想我们应该知道 UserID 以到达 User's name,它是 UserID
的孩子这是我的 Firebase 数据库结构图片
我尝试的方式只帮助我自动完成用户 ID,这对我没有帮助。
private void initialAutoCompleteTV() {
SearchPeopleAutoComp.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2)
{
//This is where I do the filtering as the user types
if (!TextUtils.isEmpty(charSequence.toString())) {
pullOutTagsSuggestions(charSequence.toString());
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
}
@SuppressWarnings("unchecked")
public void pullOutTagsSuggestions(final String text) {
final ArrayList<String> suggestions = new ArrayList<>();
Query tagsReferences = FirebaseDatabase.getInstance().getReference().child("Users").orderByKey().startAt(text).endAt((text)+ "\uf8ff");
tagsReferences.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.v("TAGTAGTAG",dataSnapshot.toString());
if (dataSnapshot != null) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String name = (String) ds.getKey();
suggestions.add(name);
}
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.select_dialog_item, suggestions);
SearchPeopleAutoComp.setAdapter(arrayAdapter);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
请帮我解决问题,在此先感谢...
【问题讨论】:
-
所以你想要登录用户的uid?这是正确的吗?
-
不,正如我在那里写的那样,我想在 AutoCompleteTextView 中自动完成所写用户名的名称...
标签: android firebase firebase-realtime-database