InvalidFirebaseData',原因:'(setValue:)
Posted
技术标签:
【中文标题】InvalidFirebaseData\',原因:\'(setValue:)【英文标题】:InvalidFirebaseData', reason: '(setValue:)InvalidFirebaseData',原因:'(setValue:) 【发布时间】:2016-09-24 09:58:07 【问题描述】:我刚刚在Xcode
中更新为Swift 3
,我不知道如何处理这个错误。谁能帮忙???
错误: InvalidFirebaseData',原因:'(setValue:) 无法在 thumbnailUrlFromStorage 中存储 _SwiftValue 类型的对象。只能存储 NSNumber、NSString、NSDictionary 和 NSArray 类型的对象。
我的代码是:
// Create a url for data (tumbnail image)
self.fileUrl = metaData?.downloadURLs![0].absoluteString
if (FIRAuth.auth()?.currentUser) != nil
let idRoom = self.BASE_REF.child("rooms").childByAutoId()
idRoom.setValue(["caption": caption, "thumbnailUrlFromStorage": self.storageRef.child(metaData!.path!).description, "fileUrl": self.fileUrl])
【问题讨论】:
您正在尝试在您的 idRoom 中输入字典或数组?你能解释一下你想要哪种类型的价值吗? 我正在尝试将数据保存到名为 Room 的 Firebase 数据库中。稍后我想将数据调用到另一个 ViewController 中。 func 是这样的 "func CreateNewRoom(_ user: FIRUser, caption: String, data: Data) let filePath = "Thumbnail/(user.uid)/(Int(Date.timeIntervalSinceReferenceDate))" let metaData = FIRStorageMetadata() metaData.contentType = "image/jpg" storageRef.child(filePath).put(data, metadata: metaData) (metaData, error) in if error != nil print("Error uploading:") return" 【参考方案1】:if (FIRAuth.auth()?.currentUser) != nil
let idRoom = self.BASE_REF.child("rooms").childByAutoId()
let thumbnailUrlFromStorage: String = self.storageRef.child(metaData!.path!).description
let data: Dictionary<String, Any> = [
"caption": caption,
"thumbnailUrlFromStorage": thumbnailUrlFromStorage,
"fileUrl": self.fileUrl
]
idRoom.setValue(data)
不确定这是否可行,因为我没有机会运行它,但在我看来,您将 self.storageRef.child(metaData!.path!).description
作为 nil 传递。
【讨论】:
没问题@CarstenHøvsgaard,别忘了接受答案?以上是关于InvalidFirebaseData',原因:'(setValue:)的主要内容,如果未能解决你的问题,请参考以下文章
InvalidFirebaseData Swift 3 只能存储 NSNumber、NSString、NSDictionary 和 NSArray 类型的对象。
Xcode Firebase I 更新 Firebase 数据库值时出现问题