Эта проблема может быть трудно объяснить.Извлечение конкретных данных Firebase, которые хранятся в справочнике childByAutoId() (Swift)
Вот JSON, который генерируется firebase:
{
"users" : {
"2W1Sse5kiZarFQ5k8UKjP87D8Rk2" : {
"PlainNote" : {
"-KIZYVAGZQczTSI1L4Qi" : {
"note" : "Finally works",
"title" : "Whats up"
},
"-KIZY_M3FMW0m8mgx4Am" : {
"note" : "Aye",
"title" : "Db"
},
"-KIZpAEsa7-wSCOJfHvv" : {
"note" : "This wont work for some reason",
"title" : "Helloo"
}
},
"email" : "[email protected]"
},
"XTjy66z8xEWtEiLx6E0mOo1JEaz2" : {
"email" : "[email protected]"
},
"rfzV1saUf3RtPu7YcqJ0VyAOgmd2" : {
"PlainNote" : {
"-KIZpfbfHcePU3E8HpeU" : {
"note" : "Now i only see my own data",
"title" : "Hello"
}
},
"email" : "[email protected]"
}
}
}
Вот как я произвожу каждую простую записку в скор:
let title = plainNoteTitleTextField.text!
let note = bodyOfNoteTextView.text!
let usersId = FIRAuth.auth()?.currentUser?.uid
if title != "" || note != "" {
let data = [
"title": title,
"note": note
]
self.usersRef.child(usersId!).child("PlainNote").childByAutoId().setValue(data)
После этого я заселить TableView в реальном времени с база данных с базой данных firebase:
override func viewDidAppear(animated: Bool) {
var localNotes = [String]()
var localBody = [String]()
let usersId = FIRAuth.auth()?.currentUser?.uid
usersRef.child(usersId!).child("PlainNote").observeEventType(.ChildAdded, withBlock: { snapshot in
let title = snapshot.value?.objectForKey("title") as! String
var x = snapshot.value?.objectForKey("note") as! String
if x.characters.count > 20 {
x = x[0...20] + "..."
} else {
x = x + "..."
}
localNotes.insert(title, atIndex: 0)
localBody.insert(x, atIndex: 0)
self.notes = localNotes
self.noteBody = localBody
self.tableView.reloadData()
})
}
Моя проблема: я пытаюсь получить доступ к PlainNote Refer так что, когда ячейка tableview используется, я могу вытащить конкретное название и тело заметки из firebase. Я не уверен, как бы это сделать, не обращаясь к моей базе данных каждый раз, потому что firebase создает уникальную ссылку каждый раз при создании новой заметки.
(P.S .: Если вы считаете, что понимаете, но вам нужна более подробная информация, не стесняйтесь спрашивать!) Спасибо.
Предполагая, что вы используете массив в качестве источника данных для вашего вида таблицы; если в настольном представлении в настоящее время показаны три узла из узла 2W1S ... когда пользователь вступает в красную строку 1 (Aye), почему вы можете просто получить информацию о заметке из массива [index = 1]? Необязательно, если пользователь забирает строку -KIZY_M3, вы можете использовать NSPredicate для поиска массива для -KIZY_M3. – Jay