Объект Select со строкой содержит несколько подстрок из БД Firebase - PullRequest
0 голосов
/ 14 мая 2018

У меня есть база данных firebase со структурой enter image description here

Теперь я хочу выбирать только имена с данным полом и качествами. Я написал такой код

private NameImpl.Gender mGender;
private String[] mQualities;

...

public void GetNames()
{
    mRef.orderByChild("Gender").equalTo(mGender.name()).addValueEventListener(new ValueEventListener()
     {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            getData(dataSnapshot);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
     });
}

Но я не могу понять, как добавить сюда требование, чтобы строка Qualities в базе данных содержала все слова из mQualities.

1 Ответ

0 голосов
/ 14 мая 2018

Вы не можете сделать это с базой данных Firebase Realtime без значительных изменений в вашей схеме.База данных реального времени не имеет возможности выполнять фильтрацию по нескольким условиям (некоторые люди говорят «несколько предложений где» в терминах SQL).Если вы хотите проверить совпадения по нескольким вещам, вам нужно создать составное поле, содержащее комбинацию искомых вещей.Например, вам понадобится строковое значение, у которого пол и все качества объединены в предсказуемой манере, а затем клиенты найдут эту строку.

Firestore позволяет вам выполнять фильтрацию по нескольким условиям, но вы все равно можетене искать наборы объектов.Вам все еще понадобится специальное поле, объединяющее все качества вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...