как получить текущий пользовательский документ в firestore swift - PullRequest
0 голосов
/ 30 мая 2018

После успешного входа в систему пользователь переходит на главный экран.Когда пользователь нажимает на кнопку со значком пользователя, вы переходите на страницу сведений об учетной записи пользователя.здесь я уже в firebase для извлечения данных из базы данных.

здесь используется код:

func observeCurrentUser(completion: @escaping (User) -> Void) {
    guard let currentUser = Auth.auth().currentUser else {
        return
    }
    REF_USERS.child(currentUser.uid).observeSingleEvent(of: .value, with: {
        snapshot in
        if let dict = snapshot.value as? [String: Any] {
            let user = User.transformUser(dict: dict, key: snapshot.key)
            print("user::::::\(user)")
            completion(user)
        }
    })

    }

Я пытался перейти с firebase на firestore.При запуске в консоли выводит, что документ не существует.Вот код, который я использовал

  func observeCurrentUser(completion: @escaping (User) -> Void) {
    guard let currentUser = Auth.auth().currentUser else {
        return
    }

   if let userId = Auth.auth().currentUser?.uid {
      db.collection("users").document(currentUser.uid)               
          .addSnapshotListener { (snapshot, error ) in

               if let document = snapshot {

               let user = User.transformUser(dict: document.data()!, key: document.documentID)
               completion(user)         

                } else {

                 print("Document does not exist")

               }

    }

Это уже сделано FireBase, я хочу в облачном Firestore?

Любая помощь высоко ценится пожалуйста.

1 Ответ

0 голосов
/ 30 мая 2018

Как указано в документации , вы можете запрашивать данные, используя:

    db.collection("cities").document("SF").getDocument { (document, error) in
        if let document = document, document.exists {
           //access data here
        } else {
            print("Document does not exist")
        }
    }

Это означает, что в вашем случае используйте:

       db.collection("users").document(currentUser.uid)               
          .getDocument { (snapshot, error ) in

               if let document = snapshot {

               let user = User.transformUser(dict: document.data()!, key: document.documentID)
               completion(user)         

                } else {

                 print("Document does not exist")

               }
       }

Дайте мне знать, какэто работает, и я могу обновить свой ответ с любой проблемой, которая может возникнуть.

С уважением, Крис

...