Ich habe jetzt einen Object-Handle, der prüft, wenn neue Kanäle hinzugefügt werden. Ich möchte, dass es sich um ein observeSingleEvent mit einer Schaltfläche handelt, die die Kanäle neu lädt, wenn der Benutzer darauf klickt. Das observeSingleEvent funktioniert ordnungsgemäß. Dies ist der Code:Fehler beim Konvertieren in observeSingleEvent in Firebase
private func observeChannels() {
channelRefHandle = channelRef.observe(.childAdded, with: { (snapshot) -> Void in
self.playersInChannnel.append("\(snapshot.childrenCount)")
let channelData = snapshot.value as! Dictionary<String, AnyObject>
let id = snapshot.key
if let name = channelData["name"] as! String!, name.characters.count > 0 {
self.channels.append(Channel(id: id, name: name))
self.tableView.reloadData()
} else {
print("Error! Could not decode channel data")
}
})
}
Ich habe versucht, jetzt ist es zu observeSingleEvent Umwandlung, setzen die Druckfehler zu sagen, konnte nicht Kanaldaten dekodieren. Das ist mein Code:
func reloadChannels()
{
channelRef.observeSingleEvent(of: .value, with: { (snapshot) -> Void in
self.playersInChannnel.append("\(snapshot.childrenCount)")
let channelData = snapshot.value as! Dictionary<String, AnyObject>
let id = snapshot.key
if let name = channelData["name"] as! String!, name.characters.count > 0 {
self.channels.append(Channel(id: id, name: name))
self.tableView.reloadData()
} else {
print("Error! Could not decode channel data")
}
})
}
Was ist falsch an diesem Code? Dieses ist ein Druck des Schnappschusses aus observeSingleEvent:
Snap (channels) {
"-Ke3g8tLH9A-_iTVjQhq" = {
"-Ke3g8tO2XPCbyIjP4Op" = {
PictureVersion = "";
userID = keVlTMUXyRViUsTVjTnKdvZs7mg1;
username = pietje;
};
name = test;
};
"-Ke3gFbijlcQGuJXe42L" = {
"-Ke3gFbjsEgpA3wjM1Jv" = {
PictureVersion = "";
userID = keVlTMUXyRViUsTVjTnKdvZs7mg1;
username = pietje;
};
name = test2;
};
}
Error! Could not decode channel data
Wieder Brennen observeChannels() keine Fehler angezeigt wird. Vielen Dank.
Danke. Ich musste ChannelSnap als hinzufügen! FIRDataSnapshot, damit es funktioniert. – Petravd1994
Ah, yeah .... Ich bin mir über diese Beschwörungen in Swift nie sicher. Freut mich zu hören, es war genug. Können Sie meine Antwort bearbeiten, um das Code-Snippet hinzuzufügen? Sonst Chancen, ich werde es an die falsche Stelle setzen. –
Habe es getan! Danke nochmal :). – Petravd1994