Firebase возвращает неизвестные данные от дочернего элемента

Я пытаюсь получить данные из таблицы firebase, но это дает мне пользователя, которого нет в базе данных firebase.

let ref = Database.database().reference().child("users")

    ref.observe(.value, with: { (snapShot: DataSnapshot!) in

        let totalUsers = snapShot.childrenCount
        self.usersRefHandle = ref.observe(.childAdded , with: { (snapshot) -> Void in
            let userDict = snapshot.value as! [String: Any]

            print(snapshot.key)

он печатает все ключи в алфавитном порядке, но внезапно я получаю ключ, которого нет в моей таблице пользователей. Помогите мне здесь, пожалуйста. Благодарю вас!

Что-то можно сказать, если прикрепить для этого свою структуру базы данных.

PradyumanDixit 26.10.2018 10:12

Кажется, вы добавляете наблюдателя .value в ref, который читает все дочерние узлы в ref и запускает событие для любых изменений внутри узла. Затем вы также добавляете событие .childAdded в узел ref. Итак, вы читаете все с .value, а затем снова читаете с .childAdded. Это то, что вы хотели сделать? Если да, не могли бы вы объяснить вариант использования? Кроме того, при добавлении дочернего элемента событие не только срабатывает для добавленного дочернего элемента, но и снова запускается (.value), а затем повторно считывает все данные в узле пользователя. Также в Firebase нет таблиц, это NoSQL.

Jay 26.10.2018 19:27

Вы также постоянно перезаписываете переменные ref и snapshot, потому что имена переменных повторно используются в замыканиях.

Jay 26.10.2018 19:36
0
3
55
0

Другие вопросы по теме