Вложенный порядокByChild для Firebase - PullRequest
0 голосов
/ 21 сентября 2018

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

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

Моя база данных и код выглядят так:

Database Example

var userref = rootref.child("Users");
var raceref = rootref.child('Races');
userref.orderByChild("Gender").equalTo('Female').on("child_added", function(snapshot) {
    console.log(snapshot.key);     
    raceref.orderByChild("uid").equalTo(snapshot.key).once("child_added", function(raceshot) {
        console.log(raceshot.key);
    });
});

Затем консольпоказывает только snapshot.key, а не raceshot.key: -864646859 -305907999

Если я вручную введу числа из snapshot.key, тогда raceshot.key отобразится в консоли.Я не получаю никаких ошибок, поэтому я не понимаю, почему я не могу использовать snapshot.key для equalTo?

1 Ответ

0 голосов
/ 22 сентября 2018

Ключ снимка по определению является строкой, поэтому ваши /Users/$id значения $id являются строками.Но в свойстве /Races/$raceid/uid значение сохраняется как число.

Я чувствую, что сравнение по типу не удается.Если это действительно причина, вы сможете исправить ее, преобразовав ключ в число:

userref.orderByChild("Gender").equalTo('Female').on("child_added", function(snapshot) {
    console.log(snapshot.key);     
    raceref.orderByChild("uid").equalTo(parseInt(snapshot.key)).once("child_added", function(raceshot) {
        console.log(raceshot.key);
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...