Dies kann eine einfache Antwort sein, also Entschuldigung im Voraus, aber ich bin fest, weil ich immer noch Kopf eingepackt herum, wie Firebase funktioniert. Ich möchte eine Firebase-Datenbank basierend auf Unix-Daten abfragen, die dort gespeichert werden, und dann die zugehörigen "Unique ID" -Daten nehmen und sie in ein Array einfügen.Konvertieren Firebase Dictionary Daten zu Array (Swift)
Die Daten in Firebase sieht wie folgt aus:
posts
node_0
Unix Date: Int
Unique ID Event Number: Int
node_1
Unix Date: Int
Unique ID Event Number: Int
node_2
Unix Date: Int
Unique ID Event Number: Int
Was ich bisher habe, ist wie folgt. Der Abfrageteil scheint wie erwartet zu funktionieren. Wo ich kämpfe, ist, wie man die "Unique ID Event Number" -Daten in ein Array legt. Dies ist der Ansatz, der dem Erfolg am nächsten schien, der auf dieser post basiert, aber ich bekomme einen Fehler, dass Kind kein Mitglied von "Wert" hat.
// Log user in
if let user = FIRAuth.auth()?.currentUser {
// values for vars sevenDaysAgo and oneDayAgo set here
...
let uid = user.uid
//Query Database to get the places searched by the user between one and seven days ago.
let historyRef = self.ref.child("historyForFeedbackLoop/\(uid)")
historyRef.queryOrdered(byChild: "Unix Date").queryStarting(atValue: sevenDaysAgo).queryEnding(atValue: oneDayAgo).observeSingleEvent(of: .value, with: { snapshot in
if (snapshot.value is NSNull) {
print("error")
}
else {
for child in snapshot.children {
if let uniqueID = child.value["Unique ID Event Number"] as? Int {
arrayOfUserSearchHistoryIDs.append(uniqueID)
}
}
}
})
}
else {
print("auth error")
}
Alle Ideen werden sehr geschätzt!
Bingo, Bango, Bongo. Es ist der Schnappschuss. Wert nicht Kind, duh. Vielen Dank! – Ben
Eigentlich habe ich zu früh gesprochen. Es funktioniert nicht, weil ich den Fehler "mehrdeutige Verwendung von tiefgestelltem" für die Zeile "let unID =" bekomme. Ich habe versucht, die Ideen von diesem Beitrag anzuwenden, aber war nicht erfolgreich. Irgendwelche Ideen? http://stackoverflow.com/questions/36238507/ambiguous-use-of-subscrip-error-after-new-swift-update – Ben
Codieren Sie in Swift 2 oder Swift 3? Für swift 2 verwenden Sie jeweils.1 [Unique ID Event Number], auch kann ich vorschlagen, verwenden Sie nicht Leerzeichen in Ihrem DB-Namen, verursacht Fehler. Ändern Sie es in ** Unique_ID_Event_Number ** – Dravidian