swift - 处理从 Firebase 的 Firestore 收到的未知类型的最佳方法
问题描述
我目前正在为我的 swift 项目使用 Firebase,当我从 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
}
解决方案
推荐阅读
- git - 然后我在本地删除了一个分支为什么这个分支仍然在github上工作
- excel - 关于 MSForms.DataObject 的运行时错误 462
- nattable - NatTable - 如何实现自定义 CopyDataToClipboardSerializer
- android - Android Compose 无法在 android studio 中预览可组合功能“渲染问题”
- batch-file - 批量删除每个用户目录中的文件
- java - PDFbox从PDF中删除颜色而不显示其背后的颜色
- android - 检测应用何时进入自由窗口模式
- amazon-cloudformation - 如何在 AWS CDK 中引用 `elasticsearch.CfnDomain` 生成的域名?
- arrays - 我的函数快速返回空数组并解析
- java - Java:getter 或零参数方法的功能链接