Проблема при получении информации из базы данных Firebase IOS - PullRequest
0 голосов
/ 24 апреля 2019

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

enter image description here

И здесьмой код

var ref : DatabaseReference
        var idString = [String]()
        ref = Database.database().reference()
        ref.child("idUsers").observe(.value){ (snapshot) in
            let id = snapshot.value as? String

            if let ids = id {
                idString.append(ids)
                print(ids)
            }
        }

Но в мой массив не поступает никаких данных, я пробовал некоторые решения, но никто не работает, пожалуйста, помогите!Кстати, это мои правила, по умолчанию они общедоступны.

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019
**For creating database structure**

`override func viewDidLoad() {
var ref: DatabaseReference!
        ref = Database.database().reference()

        Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
            Auth.auth().signIn(withEmail: email, password: password) { [weak self] user, error in
                guard self != nil else { return }
                ref.child("users").setValue(["test1": "abc",
                                             "test2": "efg",
                                             "test3": "hij"])

            }
        }
}`

**// For retrieving data from firebase**

ref.observe(DataEventType.value, with: { (snapshot) in
            let postDict = snapshot.value as? [String : AnyObject] ?? [:]
            for item in postDict {
                print(item)
            }
        })
0 голосов
/ 24 апреля 2019

Поскольку idUsers содержит несколько дочерних узлов, вам необходимо циклически просмотреть результаты в вашем коде. Как то так:

ref.child("idUsers").observe(.value){ (snapshot) in
    for userSnapshot in in snapshot.children.allObjects as? [DataSnapshot] {
        let id = userSnapshot.value as? String
        print(id)

        idString.append(id)
    }
    print(ids)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...