我正在创建我的第一个应用程序(和迅速的新手)。当我从Facebook登录时,名称和电子邮件会保存在Firestore中。我试图将名称从facebook设置为变量,以在其他地方使用它,但是我无法分配该值,控制台中始终显示“ nil”。有人可以帮我吗?
我设置变量
var userN: String?
我从Firestore获取数据
func readDatabase(){
let db = Firestore.firestore()
let docRef = db.collection("users").document("email")
docRef.getDocument { (document, error) in
if let document = document, document.exists {
let dataDescription = document.data().map(String.init(describing:)) ?? "nil"
print("Document data: \(dataDescription)")
let data = document.data()
let userName = data!["name"]! as! String
print(userName)
let userEmail = data!["email"]! as! String
print(userEmail)
let containerController = ContainerController()
let containerController.userN = userName;
return
}
}
}
我想分配
userN = userName
,以便在其他视图中使用我怎样才能做到这一点?谢谢
最佳答案
如果您使用的是StoryBoards,则可以通过segue函数进行传递。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "YourStoryBoardSegue" {
if let viewController = segue.destination as? ContainerController {
viewController.userN = userName
}
}
}
否则,最佳做法是使用委托方法。
搜索堆栈溢出,以获取使用委托传递数据的最佳实践。
关于swift - 从Firestore分配用户名值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56919056/