В настоящее время я использую 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
}