Проверка, имеет ли ключ Firestore значение - PullRequest
1 голос
/ 16 января 2020

Я зацикливаюсь на снимке, полученном из базы данных Firestore, получая значения в мой пользовательский объект с условным развертыванием, как в примере ниже. Он работает нормально, пока ключ имеет значение, но как только он пуст, я получаю исключение в строке if let temp = document.get("windGust") as! String? (см. Ошибку ниже)

Я думал, что условное развертывание должно было справиться с этим? Кто-нибудь может указать мне правильное направление, как справиться с этим в коде? Если значение windGust пусто, его следует просто проигнорировать и продолжить.

    db.collection("yrData").getDocuments { (snapshot, error) in

        for document in snapshot!.documents {

            let yrData = YrData()
            if let temp = document.get("windGust") as! String?
            {
                yrData.windGust = temp
            }

Ошибка:

Не удалось преобразовать значение типа '_NSZeroData' (0x7fff87d0b5b8) в 'NSString' (0x7fff87d0eee8). 2020-01-16 21: 29: 23.417663 + 0100 Виктория [13603: 708774] Не удалось преобразовать значение типа «_NSZeroData» (0x7fff87d0b5b8) в «NSString» (0x7fff87d0eee8).

Ответы [ 2 ]

1 голос
/ 17 января 2020

Возможно, это не ответ на мой вопрос, но это решение:

Вместо использования:

            if let temp = document.get("windGust") as! String?
            {
                yrData.windGust = temp
            }

Используйте data () следующим образом:

yrData.windGust = data["windGust"] as? String ?? ""
0 голосов
/ 17 января 2020

Возможно, вам просто понадобится использовать оператор объединения нулей.

Что-то вроде этого будет читать; если поиск windGust не является строкой, присвойте пустую строку.

yrData.windGust = document.get("windGust") as? String ?? ""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...