Swift - чтение данных из Firebase (база данных в реальном времени) - PullRequest
1 голос
/ 28 июня 2019

я совершенно новый в Xcode Development.

Я создал следующую базу данных в своей Firebase:

{
  "Bicycle" : {
    "BMX" : {
      "image" : "bmx.png",
      "text" : "BMX ..."
    },
    "Dirt jumping" : {
      "image" : "dirtjumping.png",
      "text" : "Dirt jumping..."
    }
  },
  "Running" : {
    "Half-marathon" : {
      "image" : "halfmarathon.png",
      "text" : "Half-marathon ..."
    },
    "Marathon" : {
      "image" : "marathon.png",
      "text" : "Marathon ..."
    }
  }
}

Теперь я хочу показать "Bicycle" и "Running" в первомTableViewController.

Когда я пробую следующий код:

var ref: DatabaseReference!
ref = Database.database().reference()

ref.child("sports").observeSingleEvent(of: .value) { snapshot in
    print(snapshot.childrenCount) // I got the expected number of items
    for case let rest as DataSnapshot in snapshot.children {
        print(rest.children)
    }
}

, я получаю следующий вывод:

2
<FTransformedEnumerator: 0x6000038b40a0>
<FTransformedEnumerator: 0x6000038b40a0>

Может быть, вы можете дать мне хороший совет.

С уважением, doomsweb

Ответы [ 2 ]

1 голос
/ 28 июня 2019

Получить snapshot.value в качестве словаря и получить подробную информацию из словаря

ref.child("sports").observeSingleEvent(of: .value, with: { snapshot in
    if let sports = snapshot.value as? [String: Any] { 
        for (title, details) in sports {
            print(title)//Bicycle
            print(details)//["BMX" : ["image" : "bmx.png", "text" : "BMX ..."], "Dirt jumping" : ["image" : "dirtjumping.png","text" : "Dirt jumping..."]]
        }
    }
}) { (error) in
    print(error.localizedDescription)
}
0 голосов
/ 28 июня 2019

Вы можете использовать snapshot.valueInExportFormat() для получения данных в формате словаря.

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