【问题标题】:Firebase Retrieving Data - SwiftFirebase 检索数据 - Swift
【发布时间】:2021-03-17 23:41:54
【问题描述】:

我正在尝试从 firebase 获取数据,但由于某种原因它无法正常工作。我尝试了很多东西,但它们似乎仍然不起作用。我正在尝试检索“DailyRemedies”部分中的所有项目

代码:

ref.child("Users/\(userUID!)").child("DailyRemedies").observe(.childChanged) { (snapshot) in
    
    if let userDict  = snapshot.value as? [String: Any] {
        print(userDict["DailyRemedies"]!)
    }
    
}

json:

{
 "EFy3Ba9sHDZYLazhzXmgqZ5RWJL2" : {
        "DailyRemedies" : [ "not done", "done", "done", "done", "done", "done", "done" ],
        "Email" : "abc@aol.com",
        "Password" : "kalani"
 }
}

【问题讨论】:

  • 什么不起作用?那个 json 是什么 - 是你希望得到的,还是你正在得到的?
  • 我希望 userDict 包含来自 JSON 的“DailyRemedies”的值列表,但它不起作用。我基本上想获取那些“完成”值的列表 |更新:我刚刚从我的数据库中包含了完整的 json,其中也包含了 userUID
  • 你仍然没有说“没有/没有工作”是什么意思。你的意思是这个值是空的?不明确的?一组与您预期不同的值?发生了车祸?回调函数根本没有被调用吗?
  • 断点是在打印语句中设置的,但它没有命中,所以我假设 userDict 对快照值的声明存在问题。 userDict 出来是空的,所以我无法从“DailyRemedies”部分检索数据。因此,它不起作用

标签: ios swift firebase firebase-realtime-database


【解决方案1】:
    ref.child("Users").child(userUID).child("DailyRemedies").observeSingleEvent(of: DataEventType.value, with: { snapshot in
        if snapshot.exists() {
            print(snapshot)
        } else {
            //
        }
    })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多