FireBase 3.0 по запросу

0

Я создаю проект, в котором я хочу извлечь список из запроса, используя firebase 3.0. Я совершенно новичок в этом, но я думаю, что есть простой ответ на мой вопрос.

У меня есть эта структура:

requests : {
       luke1 : {
              1 : {
                    .../...
                     users : {
                              0 : {
                                   username : joseph,
                                   answered : 0
                                   }
                              1 : {
                                   username : mark,
                                   answered : 1
                                   }
                               }
                    }
                 }
             }

В основном зарегистрированный пользователь (luke1) отправляет запрос нескольким пользователям (joseph и mark) и позволяет сказать, что я зарегистрирован как пользователь: joseph. Я хочу получить список запросов, отправленных в joseph, где еще не ответил

var ref = firebase.database().ref("requests/");

Я хочу знать, как я могу написать запрос.

Спасибо, что нашли время, чтобы прочитать это, и если вам нужна дополнительная информация с моего конца, пожалуйста, дайте мне знать.

Теги:
firebase
ionic-framework
firebase-realtime-database

2 ответа

0

При использовании Firebase (и в большинстве баз данных NoSQL) вы часто обнаружите, что в конечном итоге вы моделируете данные для того, как ваше приложение хочет его использовать.

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

ref.child("requests/luke1").on("child_added", ...

Но вы пока не можете легко найти запросы, отправленные конкретному пользователю. Чтобы упростить запрос на эти данные, вы можете добавить структуру перевернутой структуры в свою базу данных:

received: {
    joseph: {
        0: {
            from: luke1
            answered: 0
        }
    }
}

Теперь вы можете легко получить запросы без ответа от joseph:

ref.child("received/joseph").orderByChild("answered").equalTo(0).on("child_added", ...

Ваш первоначальный ответ, скорее всего, плохой тип дублирования данных. Но это на самом деле довольно распространено в базах данных NoSQL.

Существует еще много способов моделирования этой структуры. Для отличного введения в эту тему я рекомендую эту статью по моделированию данных NoSQL.

0

для достижения такого запроса вам нужно сохранить в переменной currentID вашего пользователя. После этого просто попробуйте что-то вроде следующего запроса:

var ref = firebase.database().ref("request").child(currentUserId).child("users");

Если я не ошибаюсь, он вернет вам запрос, который вы хотите. Надеюсь, что это поможет!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню