Firebase: запрос данных внутри неизвестного ключа имени (дочерний элемент внутри другого дочернего элемента) - PullRequest
1 голос
/ 05 апреля 2019

Я занимаюсь разработкой приложения React Native и у меня возникают сомнения по поводу запроса.

Мне нужно вернуть все группы (например, "group-id-01"), где указано UID существует в членах .

Firebase

Этот код возвращает все группы:

const memberGroup = firebase.database().ref('groups')
memberGroup.once('value')
        .then((snapshot) => {
          console.log('snapshot');
          console.log(snapshot.val());
        })
        .catch((error) => {
          console.log('Erro');
          console.log(error);
        });

Результат ЯИмея:

"group-id-01"
  "members"
    "no-uid-provided":"Belem"
    "oZlTzlbCTGaZfsrzyxqABlnxt2e2":"Julia"
  "name":"Rolling Stones"

Результат, который я хочу:

"group-id-01"
  "members"
    "oZlTzlbCTGaZfsrzyxqABlnxt2e2":"Julia"
  "name":"Rolling Stones"

Whell ...

Я пробовал некоторые запросы с .orderByChild и .equalTo, но результатимеет значение null.

const memberGroup = firebase.database().ref('groups')
.orderByChild('oZlTzlbCTGaZfsrzyxqABlnxt2e2')
.equalTo('Julia')

memberGroup.once('value')
        .then((snapshot) => {
          console.log('snapshot');
          console.log(snapshot.val());
        })
        .catch((error) => {
          console.log('Erro');
          console.log(error);
        });

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

Ценю всю помощь: D

1 Ответ

2 голосов
/ 05 апреля 2019

Ваша текущая структура позволяет вам легко искать членов для данной группы. Это не позволяет вам легко искать группы для данного пользователя. Чтобы разрешить последнее, вам нужно будет добавить дополнительную структуру данных (часто называемую обратным индексом), отображающую пользователей обратно в группы.

userGroups
  uid1
    groupid1: true
    groupid2: true
  uid2
    groupid2: true
    groupid3: true

Это означает, что вы дублируете данные, чтобы учесть дополнительный вариант использования, который довольно распространен в базах данных NoSQL.

Также см .:

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