1

I want to set a value to my variable: "Username" via Firestore. Once that Username value is set, I don't want to call to Firestore anymore. This is that so everytime the user opens the profile page it is not calling to Firestore every time, just the first time its initiated.

Any Ideas?

Heres a piece of code I tried using, but I was unsuccessful

  var username = ""

    func callToFirestore () {
        if username == "" {
            //If username has not value - set a value grabbed from Firestore
                guard let uid = Auth.auth().currentUser?.uid else { return }
                let database = Firestore.firestore().collection("Users").document(uid)
                database.getDocument { (docSnapshot, error) in
                guard let docSnapshot = docSnapshot, docSnapshot.exists else {return}
                let mydata = docSnapshot.data()
                let username = mydata!["Username"] as? String ?? ""
                self.username = username }
        } else {
            //If username != "" (meaning it has a value) - print the username
                print(username)
        }
    }
Chris Comas
  • 216
  • 4
  • 10
  • Maybe you can use UserDefaults to save username value, and check it next time to see if it already has a value. If it does have a value, continue, if not, fetch the username from firestore. Check out: https://stackoverflow.com/questions/31203241/how-can-i-use-userdefaults-in-swift – emrepun Apr 25 '20 at 23:12

0 Answers0