Это может быть простой ответ, поэтому извиняйтесь заранее, но я застрял, потому что я все еще получаю голову, обернутую тем, как работает Firebase. Я хочу запросить базу данных Firebase на основе данных даты unix, которые там хранятся, а затем взять связанные данные «Уникальный идентификатор» и поместить их в массив.Convert Firebase Dictionary Data to Array (Swift)
Данные Firebase выглядит следующим образом:
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
То, что я до сих пор выглядит следующим образом. Кажется, что часть запроса работает должным образом. Там, где я боюсь, как помещать данные «Уникальный идентификационный номер события» в массив. Это подход, который кажется самым близким к успеху, который основан на этом post, но я получаю сообщение об ошибке, что у ребенка нет члена «значение».
// 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")
}
Любые идеи очень ценятся!
Бинго, банго, бонго. Это snapshot.value не ребенок, дух. Благодаря! – Ben
На самом деле, я говорил слишком рано. Это не работает, потому что я получаю ошибку «неоднозначное использование индекса» для строки «let unID =». Я попытался применить идеи из этого поста, но не был успешным. Есть идеи? http://stackoverflow.com/questions/36238507/ambiguous-use-of-subscript-error-after-new-swift-update – Ben
Вы кодируете в быстром 2 или быстром 3? Для быстрого 2 используйте каждый.1 [Уникальный номер события ID], также я могу предположить, что не используйте интервалы в именах БД, вызывает ошибки. Измените его на ** Unique_ID_Event_Number ** – Dravidian