Как я могу получить уникальное имя пользователя в ярлыке, основываясь на том, кто вошел в систему? - PullRequest
0 голосов
/ 21 апреля 2020

По какой-то причине на ярлыке имени пользователя отображается «Боб» каждый раз, я думаю, потому что в консоли он получает все данные из моей коллекции в моей базе данных Firebase Firestore.

Я хочу, чтобы он захватил имя пользователя пользователь вошел в систему.

Также следует иметь в виду, что моя коллекция называется «пользователи», и каждый документ создается с уникальным идентификатором пользователя каждый раз, когда создается учетная запись.

СООТВЕТСТВУЮЩИЙ КОД В КЛАССЕ СЧЕТА:

let db = Firestore.firestore()
  @IBOutlet weak var usernameLabel: UILabel!

func checkWhichUserIsLoggedIn() {

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


                    self.usernameLabel.text = document.data()["username"] as? String
                    }
                }
            }
    }

КОНСОЛЬ:

Firebase/Analytics][I-ACS023012] Analytics collection enabled
1jpE5tTwg8O0LsfL6eNW => ["uid": 72KzUt7xPsYsfS1zrFnBjNkZ0TK2, "emailAddress": billy123@gmail.com, "username": billy, "password": billy123*]
fZmd6uDKnLIknhNdYBgs => ["uid": AErBkJHexcZOHqg8RAOUA33IAQ03, "emailAddress": angie@gmail.com, "username": angie, "password": angie123*]
nthbdkzm8WdiRjt2Sakf => ["uid": OSqkxWznCxOYP87nBZlw5ieZlHC2, "emailAddress": bob@gmail.com, "username": Bob, "password": bobby123*]

1 Ответ

0 голосов
/ 21 апреля 2020

Если вы хотите показать только имя вошедшего в систему пользователя, вам нужно только загрузить его документ (а не все документы в его коллекции)

func checkWhichUserIsLoggedIn() {
    let uid = Auth.auth().currentUser.uid
    let docRef = db.collection("users").document(uid)

    docRef.getDocument { (document, error) in
        if let err = error {
            print("Error getting documents: \(err)")
        } else {
            print("\(document.documentID) => \(document.data())")

            self.usernameLabel.text = document.data()["username"] as? String
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...