let userID = Auth.auth().currentUser?.uid
ref.child("players").child(userID!).observeSingleEvent(of: .value, with: { (snapshot) in
let value = snapshot.value as! NSDictionary
print("DICT VALUE",value)
})
我试图获取已登录用户的个人资料。我的问题是,如果使用变量userID
let userID = Auth.auth().currentUser?.uid
快照为空。返回此Snap (feoMdSquBSMHFXcPhZKbpsIGlKe2) <null>
如果我对userID子项使用文字字符串let userID = "feomdsqubsmhfxcphzkbpsiglke2"
,我会得到预期的回报
Snap (feomdsqubsmhfxcphzkbpsiglke2) {
currentSelected = 0;
email = "2@yahoo.com";
uid = feoMdSquBSMHFXcPhZKbpsIGlKe2;
username = "player 2";
}
我可以确认userID有效
let userID = Auth.auth().currentUser?.uid
print(userID!)
返回feoMdSquBSMHFXcPhZKbpsIGlKe2
这里是存储的数据
{
"players" : {
"feomdsqubsmhfxcphzkbpsiglke2" : {
"currentSelected" : false,
"email" : "2@yahoo.com",
"uid" : "feoMdSquBSMHFXcPhZKbpsIGlKe2",
"username" : "player 2"
},
"o4azcazrxjqc3toybykk0ghbd9o2" : {
"currentSelected" : false,
"email" : "1@yahoo.cm",
"uid" : "O4aZCAZrXJQc3TOYbykK0ghbD9O2",
"username" : "player 1"
}
}
}
答案 0 :(得分:2)
如果我没记错,Firebase数据库密钥区分大小写。在您的数据库中,您的用户ID是:
feomdsqubsmhfxcphzkbpsiglke2
但是,您登录的任何用户的实际用户ID是:
feoMdSquBSMHFXcPhZKbpsIGlKe2
试试这个:
let userID = feoMdSquBSMHFXcPhZKbpsIGlKe2
ref.child("players").child(userID!).observeSingleEvent(of: .value, with: { (snapshot) in
let value = snapshot.value as! NSDictionary
print("DICT VALUE",value)
})
看看它给你的东西。如果它不起作用,你知道你必须观察所有角色的情况。