#android #firebase #search #firebase-realtime-database
#Android #firebase #Поиск #firebase-realtime-database
Вопрос:
Я выполняю поиск в своей базе данных firebase (база данных реального времени), но в ответ у меня возникают эти ошибки, может кто-нибудь помочь мне это исправить? этот поиск выполняется через приложение, у меня следующая ошибка
PID: 15597 com.google.firebase.database.Исключение DatabaseException: не удалось преобразовать значение типа java.util.ArrayList в строку
MAINACTIVITY
public class SalasActivity extends AppCompatActivity {
private EditText mSearchField;
private ImageButton mSearchBtn;
private RecyclerView mResultList;
private DatabaseReference mUserDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_salas);
mUserDatabase = FirebaseDatabase.getInstance().getReference("grupos");
mSearchField = (EditText) findViewById(R.id.search_field);
mSearchBtn = (ImageButton) findViewById(R.id.search_btn);
mResultList = (RecyclerView) findViewById(R.id.result_list);
mResultList.setHasFixedSize(true);
mResultList.setLayoutManager(new LinearLayoutManager(this));
mSearchBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String searchText = mSearchField.getText().toString();
firebaseUserSearch(searchText);
}
});
}
private void firebaseUserSearch(String searchText) {
Toast.makeText(SalasActivity.this, "Started Search", Toast.LENGTH_LONG).show();
Query firebaseSearchQuery = mUserDatabase.orderByChild("nome").startAt(searchText).endAt(searchText "uf8ff");
FirebaseRecyclerAdapter<Users, UsersViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(
Users.class,
R.layout.list_layout,
UsersViewHolder.class,
firebaseSearchQuery
) {
@Override
protected void populateViewHolder(UsersViewHolder viewHolder, Users model, int position) {
viewHolder.setDetails(getApplicationContext(), model.getName(), model.getStatus(), model.getImage());
}
};
mResultList.setAdapter(firebaseRecyclerAdapter);
}
// View Holder Class
public static class UsersViewHolder extends RecyclerView.ViewHolder {
View mView;
public UsersViewHolder(View itemView) {
super(itemView);
mView = itemView;
}
public void setDetails(Context ctx, String userName, String userStatus, String userImage){
TextView user_name = (TextView) mView.findViewById(R.id.name_text);
TextView user_status = (TextView) mView.findViewById(R.id.status_text);
ImageView user_image = (ImageView) mView.findViewById(R.id.profile_image);
user_name.setText(userName);
user_status.setText(userStatus);
Glide.with(ctx).load(userImage).into(user_image);
USERS.JAVA
public class Users {
public String nome, membros, id;
public Users(){
}
public String getName() {
return nome;
}
public void setName(String name) {
this.nome = name;
}
public String getImage() {
return membros;
}
public void setImage(String image) {
this.membros = image;
}
public String getStatus() {
return id;
}
public void setStatus(String status) {
this.id = status;
}
public Users(String name, String image, String status) {
this.nome = name;
this.membros = image;
this.id = status;
}
}
База данных
ИЗОБРАЖЕНИЕ БАЗЫ ДАННЫХ
Комментарии:
1. исключение, указывающее на то, что ваша модель ожидает строковое значение, но firebase возвращает Arraylist. попробуйте проверить коллекцию firebase и изменить в соответствии с этим.
2. пожалуйста, поделитесь своей базой данных
3. Пожалуйста, добавьте свою структуру базы данных и, пожалуйста, также ответьте с помощью @ .
4. @AlexMamo Я поместил изображение структуры базы данных, спасибо за вашу помощь.
5. @PeterHaddad Я поместил изображение базы данных, спасибо за помощь