首页 > 解决方案 > 处理从 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
                        }

标签: swiftfirebasegoogle-cloud-firestore

解决方案


推荐阅读