Как я могу получить автоматически сгенерированный ключ Firebase в Swift? - PullRequest
0 голосов
/ 22 мая 2018

Firebase structure

У меня есть такая структура Firebase.Итак, как я могу получить и распечатать строку автоматического создания ключа и его индекс?

Это мой код, но все еще распечатывается 10093

databaseReference.child("Message").child(senderId).child(receiverId!).observe(.value, with: { snapshot in
            self.databaseReference.child("Message").child(self.senderId).child(self.receiverId!).child(snapshot.key).observe(.value, with: { (snap) in
                print("aaa \(snap.key)")
    })
})

Что мне не хватает или что-то не так?Пожалуйста, исправьте это для меня.Большое спасибо

Ответы [ 3 ]

0 голосов
/ 22 мая 2018

Когда вы наблюдаете любую ссылку в базе данных, вы получаете DataSnapshot взамен.Снимок имеет свойство перечислителя children, в которое можно перечислить каждого дочернего элемента.У каждого ребенка будет еще один DataSnapshot.Теперь каждый снимок имеет key и value.Вы хотите key?Просто используйте свойство key:

let databaseRef = Database.database().reference(withPath: "Message").child("1577").child("10093")
databaseRef.observe(.value) { (snapshot) in
    snapshot.children.forEach({ (child) in
        if let child = child as? DataSnapshot {
            let key = child.key
            print(key)
        }
    })
}
0 голосов
/ 22 мая 2018
let databaseRef = Database.database().reference(withPath: "Message").child("1577").child("10093")
 databaseRef.observe(.childAdded)
    { (snapshot:DataSnapshot) in           
        print(snapshot.key)
    }
0 голосов
/ 22 мая 2018

Пожалуйста, попробуйте это.

databaseReference.child("Message").child(senderId).child(receiverId!).observe(.value, with: { snapshot in

    if snapshot.childrenCount > 0 {
       for users in snapshot.children.allObjects as! [DataSnapshot] {
            print(users.key)
       }
    }
})

A DataSnapshot содержит данные из базы данных.Имеет свойства ключа и значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...