转换对象以写入firebase? (只能存储 NSNumber、NSString、NSDictionary 和 NSArray 类型的对象)

Posted

技术标签:

【中文标题】转换对象以写入firebase? (只能存储 NSNumber、NSString、NSDictionary 和 NSArray 类型的对象)【英文标题】:Convert object for writing to firebase? (Can only store objects of type NSNumber, NSString, NSDictionary, and NSArray) 【发布时间】:2018-03-19 14:56:03 【问题描述】:

我有一个这样的数组:var myArray = [(String, Int)]() 我想将此写入 Firebase,但收到错误消息:“只能存储 NSNumber、NSString、NSDictionary 和 NSArray 类型的对象” 当我这样做时:("\(myArray)") 更新 childValues 时,它会通过,但它也会写入所有“”´s、()´s 和 \´s 我有一个从 Firebase 读取的网页,我想通过删除多余的字符使它看起来更漂亮。 是否可以转换我的数组或其他东西以使 Firebase 接受它?

【问题讨论】:

【参考方案1】:

您的数组是元组数组,元组不是受支持的类型之一。

你可以将元组映射到一个真正的数组

let realArray = myArray.map[$0.0, $0.1]

请考虑documentation 中的此注释:

元组对于相关值的临时组很有用。它们不适合创建复杂的数据结构。如果您的数据结构可能在临时范围之外持续存在,请将其建模为类或结构,而不是元组。

【讨论】:

以上是关于转换对象以写入firebase? (只能存储 NSNumber、NSString、NSDictionary 和 NSArray 类型的对象)的主要内容,如果未能解决你的问题,请参考以下文章

如何将 JSONObject 写入 firebase 数据库节点

InvalidFirebaseData Swift 3 只能存储 NSNumber、NSString、NSDictionary 和 NSArray 类型的对象。

IOS 数据存储(NSKeyedArchiver 归档篇)

如何在 Flutter 中从 firebase 存储读取和写入文本文件?

无法在 Glitch 上使用 Javascript 写入 Firebase 数据库

Swift Firebase:无法在 fileURL 中存储 _SwiftValue 类型的对象