【问题标题】:swift firebase query returns null with currentUser?.uidswift firebase 查询返回 null 与 currentUser?.uid
【发布时间】:2018-08-19 16:41:18
【问题描述】:
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> 如果我使用文字字符串let userID = "feomdsqubsmhfxcphzkbpsiglke2"作为 userID 孩子,我会得到预期的回报

Snap (feomdsqubsmhfxcphzkbpsiglke2) {
    currentSelected = 0;
    email = "2@yahoo.com";
    uid = feoMdSquBSMHFXcPhZKbpsIGlKe2;
    username = "player 2";
}

我可以确认用户 ID 有效

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"
    }
  }
}

【问题讨论】:

  • 看起来您在尝试读取的位置的数据库中没有数据。您在快照中期待什么而不是 null?
  • 我编辑了我的答案以显示存储的数据。我的预期结果也在答案中。

标签: swift firebase firebase-realtime-database firebase-authentication


【解决方案1】:

如果我没记错的话,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)
})

看看它给了你什么。如果它不起作用,你知道你必须注意你所有角色的情况。

【讨论】:

  • 谢谢!我知道我错过了一些东西。当我第一次开始玩这个时,我一直使用用户名作为节点 ID,并且在插入用户名时使用 .lowercased()。我切换到使用真实 ID,我仍然在上面有 .lowercased(),但正在将它应用到真实用户 ID。
猜你喜欢
  • 2017-08-26
  • 2017-11-26
  • 2020-06-24
  • 1970-01-01
  • 1970-01-01
  • 2018-10-30
  • 1970-01-01
  • 2020-04-08
  • 1970-01-01
相关资源
最近更新 更多