Pictures
-pictureID
-- name
-- date
Like
-pictureID
-- userID: true
-- userID: true
likePerUser
-userID
--pictureID: true
--pictureID: true
Users
-userID
-- name
-- lastname
我想检索当前用户喜欢的所有图片。
我做了:
ref.child("likePerUser").child(FIRAuth.auth()!.currentUser!.uid).observeSingleEvent(of: .value, with: { (snap) in
for item1 in snap.children{
let firstItem1 = (snap: item1 as! FIRDataSnapshot)
print("key favourites\(firstItem1.key)")
let firstId = firstItem1.key
self.ref.child("pictures").child(firstId).observeSingleEvent(of: .value, with: { (snapshot) in
for item in snapshot.children{
let firstItem = (snapshot: item as! FIRDataSnapshot)
print("key pictures \(firstItem.key)")
let dict = firstItem.value as! [String: Any
let name = dict["name"] as! String
print(name)
}
甚至,如果看起来firstId每次都有正确的价值, 我总是收到错误:
无法将类型'__NSCFBoolean'(0x110dae5b8)的值转换为 'NSDictionary'(0x110daf288)。
请帮忙......
答案 0 :(得分:1)
我解决了这个问题:
if let dictionary = snapshot.value as? NSDictionary {
if let name = dictionary["nome"] as? String {
print(name)
}
}
这些问题帮助了我:Swift - Could not cast value of type '__NSCFString' to 'NSDictionary'
此外,我不需要再次迭代。
答案 1 :(得分:0)
let dict = firstItem.value as! [String: Any
这是您尝试将值转换为字典的位置。目前还不清楚该值是否是基于您共享的数据库模型的字典。但是,如果你打印firstItem.value.debugDescription
,你很可能会发现它不是一个字典对象。