Ich habe eine UICollectionView, wo ich Daten unter Verwendung einer Klasse auffüllen. Ab sofort befülle ich es mit Dummy-Daten, wie im folgenden Code gezeigt. Ich habe versucht, diese Dummy-Daten durch Daten aus meiner Firebase-Datenbank zu ersetzen.Wie man Firebase-Daten mit einer Klasse zurückgibt?
import UIKit
class MrNobody
{
// MARK: - Public API
var title = ""
var description = ""
var numberOfMembers = 0
var numberOfPosts = 0
var featuredImage: UIImage!
init(title: String, description: String, featuredImage: UIImage!)
{
self.title = title
self.description = description
self.featuredImage = featuredImage
numberOfMembers = 1
numberOfPosts = 1
}
// MARK: - Private
// dummy data
static func createMrNobody() -> [MrNobody]
{
return [
MrNobody(title: "some text" , description: "some text", featuredImage: UIImage(named: "r1")!),
MrNobody(title: "some text" , description: "some text", featuredImage: UIImage(named: "r1")!),
MrNobody(title: "some text" , description: "some text", featuredImage: UIImage(named: "r1")!),
]
}
}
Um Daten aufzunehmen, ich habe import Firebase
enthalten, meine Firebase Datenbank identifiziert mit let ref = Firebase(url: "my app url")
und Lesen von Daten unter Verwendung von
ref.observeEventType(.Value, withBlock: { snapshot in
print(snapshot.value)
}, withCancelBlock: { error in
print(error.description)
})
Ich bin in der Lage, die Child-Daten zu lesen, aber ich bin nicht in der Lage zu sein um es im return
Block der Funktion zu verwenden. Idealerweise würde ich enumerator = snapshot.childrenCount
verwenden und die return
Funktion retirativ für so viele Kinder verwenden, die sich in dem Knoten von Interesse befinden.
Jede Hilfe/Richtung wird sehr geschätzt.
Hey OP, ich weiß, dass deine Frage bereits beantwortet wurde, aber ich würde dich ermutigen, einfach einen Initialisierer in der 'MrNobody'-Klasse zu machen nimmt einen 'FDataSnapshot'. Dies ist eine gute Vorgehensweise, da es die Wiederverwendbarkeit von Code ermöglicht, falls Sie diese Snapshots an mehreren Stellen im Code verwenden müssen (z. B. wenn Sie die Ereignistypen '.ChildAdded' und' .ChildRemoved' hören). –