Ich habe eine Benutzerklasse innerhalb meiner FirebaseDB. Es ist, was Sie erwarten würden, eine flache Datei DB würde aussehen: Benutzer-> UID-> Profil-> Schlüssel/Werte. Ich versuche, Best Practices innerhalb meines Codes zu implementieren, damit die Daten vom Benutzermodell in meinem Xcode-Projekt verarbeitet werden können. Wie würde ich die Daten analysieren und als Klassenvariablen in meinem Modell speichern?So analysieren Sie Daten von Firebase und speichern sie anschließend in einem Modell. Swift3 MVC Format
class User {
private var _username: String
private var _uid: String
var uid: String {
return _uid
}
var username: String {
return _username
}
init (uid: String, username:String) {
self._uid = uid
self._username = username
}
func getUserData() {
DataService.ds.REF_USERS.observeSingleEvent(of: .value, with: { (snapshot) in
if let users = snapshot.value as? Dictionary<String, Any>{
for (key, value) in users { // We use the for in loop to iterate through each key/value pair in the database which is stored as a dictionary.
if let dict = value as? Dictionary<String, Any> { // This gets us inside the user ID
if let profile = dict["profile"] as? Dictionary<String, Any> { // This gets us inside the profile
if let username = profile["username"] as? String {
self._uid = key // Stores the UID of the user as the key.
self._username = username
} else {
let username = profile["name"] as? String
self._uid = key
self._username = username!
}
}
}
}
}
Dies ist, was ich zu tun versucht, aber ich bin verloren, wie ich in der Klasse, die Datenwerte tatsächlich speichern würde. FYI: Benutzername ist ein Attribut unter Profil.
Ich denke, was Sie versuchen, ist konzeptionell falsch. Sie haben eine Klasse, die einen einzelnen Benutzer und nicht mehrere Benutzer darstellt. Wenn Sie Ihren Code betrachten, versuchen Sie, mehrere Benutzer in einer einzelnen Benutzerklasse zu speichern. Was ist deine letzte Absicht? um ein Array von Benutzern zu erstellen? Wenn dies der Fall ist, sollten Sie in Erwägung ziehen, eine Users-Klasse zu erstellen, in der sich ein Array von "User" -Typ-Elementen befindet. Auf diese Weise können Sie jeden Benutzer zum Array schieben. Wenn dies nicht das ist, was Sie wollen - bitte klären Sie Ihre Frage. – Barackos
Ich möchte nur für einen einzelnen Benutzer speichern, aber ich werde ein anderes für mehrere Benutzer zu einem späteren Zeitpunkt erstellen. Für jetzt möchte ich nur wissen, wie ich eine – Chris
speichern kann Um zu klären, versuche ich eine Benutzerprofilseite zu erstellen. Dies würde bedeuten, ihre Informationen anzuzeigen – Chris