Мой firebase int возвращает ноль - PullRequest
0 голосов
/ 05 июня 2018

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

ref = Database.database().reference()    
let UserUID = Auth.auth().currentUser?.uid as? String

ref.child("users").child(UserUID!).child("MaxVal").observeSingleEvent(of:
.value, with: { (snapshot) in

            let snap = snapshot.value as? Int
            self.MaxValFB = snap! //this returns nil

    }) { (error) in
        print(error.localizedDescription)
    }

Любая помощь оценивается заранее!

РЕДАКТИРОВАТЬ: при печатиего результат возвращает Необязательный (null)

также здесь находится файл db json { "users" : { "Optional(\"njcfCQaIIhZS9qrqM9OFLqTS7yA2\")" : { "MaxVal" : 1 } } }

1 Ответ

0 голосов
/ 05 июня 2018

Я думаю, что проблема в этом "Optional(\"njcfCQaIIhZS9qrqM9OFLqTS7yA2\")", когда вы сохраняете данные в firebase, вы даете ему идентификатор, не разворачивая необязательное значение, и когда вы получаете значение, вы разворачиваете его как UserUID!, так что это дает"njcfCQaIIhZS9qrqM9OFLqTS7yA2", следовательно, это два разных значения.

Поэтому я думаю, что вы должны развернуть идентификатор пользователя при сохранении данных в firebase или попытаться получить его без распаковки, т.е. child(UserUID) без !, хотя япредложил бы пойти с первым вариантом.

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