Получение данных из базы данных Firebase в реальном времени с помощью SwiftUI Xcode 11 - PullRequest
0 голосов
/ 09 июля 2020

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

Эта функция предназначена для получения тем и одновременно абзацев

func getSubjects() {
    let subjectRef = database.child("subjects")
    subjectRef.observe(.childAdded, with: { (snapshot) in
        for child in snapshot.children {
            print(snapshot)
             if let snapshot = child as? DataSnapshot,
                let subject = Subject(snapshot.value)
            //subjectList.append(subject)
           // print("Data : \(subject)")
                
        }
    })
}

Это экран firebase

Экран консоли

На Android У меня не было этой проблемы, но поскольку я новичок в iOS, у меня время справляться. Любая помощь будет приветствоваться. Спасибо

1 Ответ

0 голосов
/ 09 июля 2020
• 1000 каждый раз, когда это представление загружается, оно снова будет извлекаться из базы данных. Это намного эффективнее и дешевле. Вам может понадобиться что-то вроде этого:
ref = Database.database().reference()
ref.child("subjects").child("0").child("paragraphs").child("0").observeSingleEvent(of: .value, with: { (snapshot) in
        let value = snapshot.value as? NSDictionary
        let location = value["location"] as? NSDictionary
        let title= value?["title"] as? String ?? ""
        let text = value?["text"] as? String ?? ""
        let latitude = location?["latitude"] as? String ?? ""
        let longitude = location?["longitude "] as? String ?? ""
    }) { (error) in
     print(error.localizedDescription)
}

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

Если они не вложены и находятся на том же уровне, что и место, которое вы наблюдаете в ссылка на базу данных, как, например, выше, мы ищем в узле темы> 0> абзацы> 0 в базе данных. Заголовок - это значение внутри этого узла, а не дочерний элемент, поэтому мы можем просто получить значение заголовка из базы данных через предоставленный моментальный снимок данных.

Я рекомендую прочитать Документы , они ' очень хорошо и легко понять при работе с разными ОС / языками.

...