gpt4 book ai didi

swift - 如何从我的应用程序当前登录用户的文档中检索信息?

转载 作者:行者123 更新时间:2023-11-28 07:22:10 25 4
gpt4 key购买 nike

在注册/注册用户时,我将数据存储在每个用户文档的 3 个字段中:姓名、电子邮件和用户名。我有一个按钮,按下它会显示一条欢迎消息:“你好,(用户名)”,但这无法读取当前用户的用户名,即当前登录的用户,而是显示任何用户的用户名其他随机用户。

我可以使用 Firebase Auth 读取当前用户的电子邮件,即:

Auth.auth().currentUser?.email

但我无法读取当前用户的用户名,据我所知,该用户名未保存在 Firebase 的身份验证端。

这是我已经尝试过的代码:

func loadUserData() {
guard let email = Auth.auth().currentUser?.email else { return }
emailString = "\(email)"



self.db.collection("users").getDocuments { (snapshot, error) in
if let err = error {
print("Error: \(err)")
} else {
for document in snapshot!.documents {
let emailRetrieved = document.get("email") as! String
let usernameRetrieved = document.get("username") as! String

print("ATTEN: 658")
self.emailString = emailRetrieved
print(self.emailString)
self.usernameString = usernameRetrieved
print(self.usernameString)

}
}
}
}

这正是文档所建议的。上面的代码只是打印出“用户”集合下所有文档的电子邮件和用户名。

我的文档的名称是“users”,如果有帮助的话,每个用户的信息都保存在他们的个人文档中,名称作为他们的用户 ID。如果有人能提供帮助,我将不胜感激,我已经在这个问题上停留了一段时间了。

最佳答案

我建议您在您的文档或文档 ID 本身中使用来自 firebase 身份验证的用户的 uid 创建一个字段。在这个repousersEndpoint.js 下查看 exports.createUser

...
usersCollection.doc(userRecord.uid).set({
uid: userRecord.uid,
firstname: user.firstname,
lastname: user.lastname,
dateOfBirth: user.dateOfBirth,
sex: user.sex,
city: user.city,
activities: user.activities,
offers: user.offers
})
...

使用这种方法,您可以像这样更改代码:

func loadUserData() {
...
let uid= Auth.auth().currentUser?.uid

self.db.collection("users").get(uid) { (snapshot, error) in
if let err = error {
print("Error: \(err)")
} else {
...
}
}
}

这样一来,您就可以更轻松地获得用户的正确文档。

抱歉,我的代码不是swift。我用 swift 编码已经有一段时间了。但我希望这会有所帮助。

编辑

或者,您可以使用 docs 中描述的查询Firestore 的。它可能看起来像这样:

...
guard let email = Auth.auth().currentUser?.email else { return }
emailString = "\(email)"

self.db.collection("users").whereField("email", isEqualTo: emailString)
.getDocuments() { (querySnapshot, err) in
if let err = err {
print("Error getting documents: \(err)")
} else {
for document in querySnapshot!.documents {
print("\(document.documentID) => \(document.data())")
}
}
}
...

关于swift - 如何从我的应用程序当前登录用户的文档中检索信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57747985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com