我试图使消息的发件人名称动态化,我的viewdidload()中有此代码
if let data = snapshot.value as? [String: String],
let userId = data["MessageUser"],
/*problem*/ let fname = self?.getName(id: userId),
let text = data["MessageText"],
!text.isEmpty
{
if let message = JSQMessage(senderId: userId, displayName: fname, text: text)
{
self?.messages.append(message)
self?.finishReceivingMessage()
}
}
这是我获取ID的名称的功能:
func getName(id:String) -> String {
var fname = ""
Database.database().reference().child("users").child(id).observe(.value, with: {(snapshot) in
let value = snapshot.value as? NSDictionary
fname = value?["Fname"] as! String
})
return fname
}
为什么它返回nil?我的预期输出是调用该函数时发送的ID的名字。