Лучший способ обработки неизвестных типов, полученных от Firebase's Firestore - PullRequest
0 голосов
/ 06 апреля 2020

В настоящее время я использую Firebase для своего проекта swift, и когда я получаю данные из Firebase, их тип равен Any. Таким образом, нет никакой гарантии, что я получу ожидаемый тип, особенно если я работаю с дополнительными людьми, которые могут редактировать типы данных базы данных в консоли Firebase. У меня вопрос, как я могу прочитать данные и предотвратить сбой моей программы в случае получения неожиданного типа?

Вот как я делаю это сейчас: (У меня есть значения по умолчанию в файле констант )

//
                    // data is documentSnapshot.data()
                    // fieldName is a String for field name
                    if let receivedFieldData = data![fieldName]{
                        print(defaultValue!)
                        print(type(of: defaultValue!))

                        if defaultValue! is Double{
                            userData![fieldName] = receivedFieldData as? Double ?? defaultValue
                        } else if defaultValue! is Bool{
                            userData![fieldName] = receivedFieldData as? Bool ?? defaultValue
                        } else if defaultValue! is Int {
                            userData![fieldName] = receivedFieldData as? Int ?? defaultValue
                        } else if defaultValue! is String {
                            userData![fieldName] = receivedFieldData as? String ?? defaultValue
                        } else {
                            // no data type met
                        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...