Firebase iOS Swift 使用来自其他节点的数据检索收藏夹列表

Posted

技术标签:

【中文标题】Firebase iOS Swift 使用来自其他节点的数据检索收藏夹列表【英文标题】:Firebase iOS Swift retrive list of favourites with data from other node 【发布时间】:2017-04-23 12:47:08 【问题描述】:
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)。

请帮忙....

【问题讨论】:

如果您想获得帮助,请修复您的代码并告诉我们错误发生在哪里。 【参考方案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'

我也不需要再次迭代。

【讨论】:

【参考方案2】:
let dict = firstItem.value as! [String: Any

这里是您尝试将值转换为字典的地方。目前尚不清楚该值是否是基于您共享的数据库模型的字典。但是很有可能,如果您打印 firstItem.value.debugDescription,您将看到它的值不是字典对象。

【讨论】:

谢谢答案,如果我打印你的建议我得到:可选(名称)可选(日期)我喜欢的每张照片,所以我看到它不是字典,但我怎样才能访问那些如果我不能迭代字典,价值? 如果您更新问题以显示更完整的数据库模型,这将对我有所帮助。例如,您的数据库模型没有显示一个名为“favperuser”的孩子,但您在代码中使用了一个。无论如何,请检查您的代码的大小写和拼写,以确保它与数据库中的路径名称完全匹配。

以上是关于Firebase iOS Swift 使用来自其他节点的数据检索收藏夹列表的主要内容,如果未能解决你的问题,请参考以下文章

新的 Firebase 数据导致 TableView 单元格闪烁 (Firebase/iOS/Swift)

iOS Swift Firebase SDK 导入问题

iOS swift得到问题firebase崩溃分析库安装

如何通过 iOS(swift)将 Firebase Auth 与 MySQL DB 同步?

firebase 快速入门 ios 示例

无法在 Swift 中使用来自 Firebase 的数据立即加载 UIImageView 和 UILabel