Firebase无法从Dictionary中获取价值

时间:2017-04-12 08:53:36

标签: swift firebase firebase-realtime-database data-retrieval

我正在尝试从firebase检索用户信息。

rk70HDmNSGfugTcIbTdAKhKXE4K2 =     {
    Email = "johnny_bravo770@gmail.com";
    UserID = rk70HDmNSGfugTcIbTdAKhKXE4K2;
    Username = "Johnny_Bravo";
};

这是我检索的快照。 我想获得用户的电子邮件,但由于零值而导致崩溃

func retreiveUsers(){

    databaseRef.child("Users").observeSingleEvent(of: .value, with: { (snapshot) in

        if let fetchedUser = snapshot.value as? NSDictionary {

            print(fetchedUser["Email"])

        }
    })
}

什么是错?

1 个答案:

答案 0 :(得分:1)

如果添加更多信息会更好。我写了评论。

但我认为,问题在于databaseRef.child(" Users")将获取所有用户节点。您需要添加.child(USER_ID)或执行以下操作:

databaseRef.child("Users").observeSingleEvent(of: .value, with: { (snapshot) in

    for item in snapshot.children {
        let fetchedUserSnapshot = item as! FIRDataSnapshot
        if let fetchedUser = fetchedUserSnapshot.value as? [String: Any] {
            print(fetchedUser["Email"])
        }      
    }
})

试试这个

希望有所帮助