В firebase возможно ли сделать запрос на узле 2-го уровня, не зная значения 1-го узла? - PullRequest
0 голосов
/ 30 апреля 2020

Пожалуйста, смотрите прикрепленное изображение, так как я знаю только значение 2-го узла (-M5Cc-PcLR9HfRQyJ0SU), возможно ли сделать запрос на этом основании и получить значение 1-го узла (-M5ukIV79GHeUc0FnVUI)?

Спасибо.

Структура Firebase

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

Если мы воспринимаем вопрос буквально, вам не нужен запрос, и ответ «да», вы можете получить эти данные на основе предоставленной информации.

Опять же, это НЕ будет запросом .

Вы просили:

получить значение 1-го узла

Чтобы получить первый узел в пределах -M5Cc9t узел, вы должны прочитать узел верхнего уровня -M5 Cc -P c ... и затем прочитать первый узел в этом снимке.

Это даст вам - Узел M5Cc9t, который содержит элемент 01. Опять же, вы запрашиваете 1-й узел, и он это сделает.

Вот код, основанный на вашей структуре (я сократил имена узлов)

func readChildNode() {
    let nodeRefWeKnow = self.ref.child("DEVPCD").child("-M5uklV").child("-M5Cc-Pc")
    nodeRefWeKnow.observeSingleEvent(of: .value, with: { snapshot in
        let allSnapshots = snapshot.children.allObjects as! [DataSnapshot]
        if let firstSnapshot = allSnapshots.first {
            let name = firstSnapshot.childSnapshot(forPath: "name")
            print(name)
        }
    })
}

и вывод

Snap (name) Item 01
0 голосов
/ 30 апреля 2020

Это невозможно. Вы должны быть в состоянии построить полный путь узла для запроса. Подстановочные знаки отсутствуют.

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

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