我正在尝试从每个用户的 firestore 集合中获取文档,例如假设用户使用此电子邮件“Hola@example.com”登录,我想从名为“Hola”的集合中获取文档,如果用户登录在这封电子邮件“Hi@example.com”中,我想从“Hi”集合中获取文档,我尝试了此代码,但效果不佳。
import UIKit
import FirebaseFirestore
import Firebase
class orderTableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate {
@IBOutlet var order: UITableView!
var db: Firestore!
var firstName = [String]()
var lastName = [String]()
override func viewDidLoad() {
super.viewDidLoad()
db = Firestore.firestore()
let v = logInViewController()
if v.userNameField?.text == “Hi@example.com” {
loadData1()
}
if v.userNameField?.text == “Hola@example.com” {
loadData2()
}
}
func loadData1() {
db.collection(“Hi”).getDocuments()
{
(querySnapshot, err) in
if let err = err
{
print("Error getting documents: \(err)");
}
else
{
var count = 0
for document in querySnapshot!.documents {
count += 1
print("\(document.documentID) => \(document.data())");
self.firstName.append(document.get("firstname") as? String ?? "")
self.lastName.append(document.get("lastname") as? String ?? "")
}
}
self.order.reloadData()
}
}
func loadData2() {
db.collection(“Hola”).getDocuments()
{
(querySnapshot, err) in
if let err = err
{
print("Error getting documents: \(err)");
}
else
{
var count = 0
for document in querySnapshot!.documents {
count += 1
print("\(document.documentID) => \(document.data())");
self.firstName.append(document.get("firstname") as? String ?? "")
self.lastName.append(document.get("lastname") as? String ?? "")
}
}
self.order.reloadData()
}
}
有没有简单的方法来实现它?
答案 0 :(得分:0)
您可以将 Firebase 身份验证与 currentUser 属性结合使用。
let user = Auth.auth().currentUser
let email = user.email
然后使用此电子邮件获取他们的收藏:
db.collection(email).getDocuments()
阅读更多关于此here